gpt4 book ai didi

javascript - 正则表达式在执行 Regex.exec(testString) 时的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 00:39:29 24 4
gpt4 key购买 nike

我可以知道为什么以下语句会发生以下奇怪的行为吗?

a = /\d+/gi
outputs `/\d+/gi`
a.exec('test1323')
outputs `["1323"]`

并再次运行相同的语句给出 a.exec('test1323')

null

即使我尝试使用 new Regex("regex string") 创建正则表达式,但仍然没有变化。

请见附件enter image description here

它发生在 Chrome 控制台中。

最佳答案

您正在创建带有 g 标志的正则表达式。当您这样做时,exec方法会记住最后一个匹配的位置,并从最后一个匹配开始匹配。结果解释如下:

> 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

类似问题的较长时间演练 can be found in this answer .

关于javascript - 正则表达式在执行 Regex.exec(testString) 时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28111033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com