我能够解决这个问题,因为事实证明我不需要/g。但我想知道是否有人能够解释为什么会发生以下行为。
x = RegExp( "w", "gi" )
x.test( "Women" )
= true
x.test( "Women" )
= false
在计算表达式时,它会继续在 true 和 false 之间交替。这是一个问题,因为我在字符串列表上使用相同的编译正则表达式,导致一些字符串在本应为 true 时评估为 false。
最佳答案
您不应该在用于测试
的正则表达式中使用全局修饰符,因为它会保留上次搜索的索引并从那里开始下一个测试。
我问过same question .
关于Javascript RegEx 使用全局修饰符产生不寻常的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15824111/