为什么我的JavaScript regex.test()给交替结果
可能重复:
Javascript的正则expression式返回true ..然后false ..然后true ..等
var r = /\d/g; var a = r.test("1"); // will be true var b = r.test("1"); // will be false console.log(a == b); // will be false
请向我解释为什么r.test(“1”)的结果与每个呼叫交替出现?
我能够通过删除g修饰符来解决我遇到的问题。 不过,我仍然想明白为什么会发生这种情况。
当你使用/g
,正则expression式对象将在调用之间保存状态(因为你应该使用它来匹配多个调用)。 它匹配一次,但后来的电话从原始匹配后开始。
(这是一个JavaScript正则expression式的复制返回true ..然后false ..然后真..等 )