Подтвердить что ты не робот

Почему мой javascript regex.test() дает переменные результаты

Возможный дубликат:
Javascript regex возвращает true.. then false.. then 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. Однако я все равно хотел бы понять, почему это происходит.

4b9b3361

Ответ 1

Когда вы используете /g, объект regex будет сохранять состояние между вызовами (так как вы должны использовать его для соответствия нескольким вызовам). Он совпадает один раз, но последующие вызовы начинаются после исходного соответствия.

(Это дубликат регулярное выражение Javascript, возвращающее true.. then false.. then true.. etc)