可能重复:
Javascript regex returning true.. then false.. then true.. etc
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修饰符,我能够解决我遇到的问题。但是我仍然想知道为什么会这样。
答案 0 :(得分:93)
当您使用/g
时,正则表达式对象将在调用之间保存状态(因为您应该使用它来匹配多个调用)。它匹配一次,但后续的呼叫从原始匹配开始。
(这是Javascript regex returning true.. then false.. then true.. etc)
的副本