Неожиданное поведение 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 повторное использование одного и того же выражения для нескольких задач, следовательно, с определителем вообще)

Ответы на вопрос(3)

Ваш ответ на вопрос