Неожиданное поведение Javascript RegExp [дубликат]
На этот вопрос уже есть ответ здесь:
Почему RegExp с глобальным флагом дает неправильные результаты? 6 ответовЯ создаю объект RegExp (в JavaScript), чтобы проверить наличие числа:
var test = new RegExp( '[0-9]', 'g' );
Я использую это так
console.log( test.test( '0' ) ); // true
console.log( test.test( '1' ) ); // false - why?
Вывод этого еще более запутанный:
console.log( test.test( '1' ) ); // true
console.log( test.test( '0' ) ); // false - why?
console.log( test.test( '1' ) ); // true
console.log( test.test( '2' ) ); // false - why?
console.log( test.test( '2' ) ); // true - correct, but why is this one true?
Если я удалюg
квалификатор, он ведет себя как ожидалось.
Это ошибка, как я считаю, или какая-то особенная часть спецификации? Этоg
квалификатор должен быть использован таким образом? (Я'm повторное использование одного и того же выражения для нескольких задач, следовательно, с определителем вообще)