Задать вопрос
DELAKEY
@DELAKEY
Кодю почучуть

Js RegExp почему не всегда один результат?

20170607-tsoo-49kb.jpg
Не понимаю почему использование одного шаблона и одного текста не всегда выдаёт один и тот же результат?
  • Вопрос задан
  • 250 просмотров
Подписаться 3 Оценить 1 комментарий
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
RegExp в JavaScript сохраняет своё состояние между вызовами. Так как выражение содержит флаг глобального соответствия g, после очередного найденного совпадения поиск продолжается.

У экземпляра объекта Regexp есть свойство lastIndex, которое позволяет читать/писать индекс, с которого начнётся следующее сопоставление. Он поможет разобраться:
var RE = /([A-z0-9])/g;
console.log([
  RE.lastIndex, RE.test("aaaa"), // 0,true
  RE.lastIndex, RE.test("aaaa"), // 1,true
  RE.lastIndex, RE.test("aaaa"), // 2,true
  RE.lastIndex, RE.test("aaaa"), // 3,true
  RE.lastIndex, RE.test("aaaa"), // 4,false
  RE.lastIndex, RE.test("aaaa"), // 0,true
]);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы