> var p = /abc/gi; > var s = "abc"; > p.test(s); true > p.test(s); false;
当我在Chrome控制台上运行此代码时,我在上面输出了此输出.每次我调用’.test()’,我都会得到不同的价值.有人可以向我解释为什么会这样吗?谢谢
解决方法
行为是由于“g”修饰符,即匹配三次,第四次不匹配:
> var p = /a/gi; > var s = "aaa"; > p.test(s) true > p.test(s) true > p.test(s) true > p.test(s) false
看到类似的问题:Why RegExp with global flag in Javascript give wrong results?