Javascript 正则表达式';在执行Regex.exec(testString)时会出现奇怪的行为

Javascript 正则表达式';在执行Regex.exec(testString)时会出现奇怪的行为,javascript,regex,google-chrome,Javascript,Regex,Google Chrome,我可以知道为什么下面的陈述会发生以下奇怪的行为吗 a = /\d+/gi outputs `/\d+/gi` a.exec('test1323') outputs `["1323"]` 再次运行相同的语句 a、 exec('test1323') 空的 即使我尝试使用新的正则表达式(“正则表达式字符串”)创建正则表达式,但仍然没有改变 请看附件 它发生在chrome控制台中。您正在使用g标志创建一个regexp。当您这样做时,该方法会记住最后一个匹配的位置,并且匹配从最后一个匹配开始。结果解释如

我可以知道为什么下面的陈述会发生以下奇怪的行为吗

a = /\d+/gi
outputs `/\d+/gi`
a.exec('test1323')
outputs `["1323"]`
再次运行相同的语句 a、 exec('test1323')

空的

即使我尝试使用新的正则表达式(“正则表达式字符串”)创建正则表达式,但仍然没有改变

请看附件


它发生在chrome控制台中。

您正在使用
g
标志创建一个regexp。当您这样做时,该方法会记住最后一个匹配的位置,并且匹配从最后一个匹配开始。结果解释如下:

> a = /\d+/gi
< /\d+/gi  // a.lastIndex is initialized to 0
> a.exec("test1323")
< ["1323"] // match begins at 0, match found at index 4...7, a.lastIndex is now 8
> a.exec("test1323")
< null     // match begins at 8, no match found, a.lastIndex is reset to 0
> a.exec("test1323")
< ["1323"] // match begins at 0, match found at index 4...7, a.lastIndex is now 8
>a=/\d+/gi
a.exec(“test1323”)
<[“1323”]//匹配从0开始,在索引4…7找到匹配,a.lastIndex现在是8
>a.exec(“test1323”)
a.exec(“test1323”)
<[“1323”]//匹配从0开始,在索引4…7找到匹配,a.lastIndex现在是8
类似问题的长期试运行