我在java脚本中有以下代码
var regexp = /\$[A-Z]+[0-9]+/g;
for (var i = 0; i < 6; i++) {
if (regexp.test("$A1")) {
console.log("Matched");
}
else {
console.log("Unmatched");
}
}
Run Code Online (Sandbox Code Playgroud)
请在浏览器控制台上运行它.它将打印替代匹配和不匹配.任何人都可以说出原因.
test调用字符串后,lastIndex指针将在匹配后设置。
Before:
$A1
^
After:
$A1
^
Run Code Online (Sandbox Code Playgroud)
当到达末尾时,指针将重置到字符串的开头。
你可以尝试'$A1$A1',结果将是
Matched
Matched
Unmatched
...
Run Code Online (Sandbox Code Playgroud)
此行为在ECMAScript 语言规范15.10.6.2 中定义。
步骤 11. 如果 global 为 true,则
lastIndex使用参数“ ”、e 和 true调用 R 的 [[Put]] 内部方法。