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
Please explain to me why the result of
r.test("1") alternates with each call?
I was able to work around the issue I was having by removing the g modifier. However I would still like to understand why this happens.
When you’re using
/g, the regex object will save state between calls (since you should be using it to match over multiple calls). It matches once, but subsequent calls start from after the original match.