создать объект RegExp (в JavaScript), чтобы проверить на наличие ряда:Неожиданное Javascript RegExp поведение
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
? (Я повторно использую одно и то же выражение для нескольких задач, следовательно, имея квалификатор вообще)
Спасибо. Вы были на пару минут после jfriend00, но это похоже на более полный ответ. Просто ждать окончания отсчета, чтобы согласиться! – Dave