RegExp.test(): логическая проверка шаблона
Метод test отвечает, найдено ли совпадение регулярного выражения в строке.
Назначение
Метод test отвечает, найдено ли совпадение регулярного выражения в строке.
Как это работает
Без якорей совпадение может быть подстрокой. Флаги g и y делают важным lastIndex, поэтому повторные вызовы одного выражения могут начинать поиск с разных позиций.
Пример
console.assert(/^\d{3}$/.test("123"));
console.assert(!/^\d{3}$/.test("x123"));
const stateful=/a/g;
console.assert(stateful.test("a"));
console.assert(!stateful.test("a"));
Что должно получиться
Три цифры целиком проходят проверку, строка с лишним префиксом — нет. Глобальное выражение показывает, что объект RegExp может сохранять состояние между вызовами.
Граница применения и частая ошибка
Не добавляйте g к выражению для независимой проверки каждого поля без понимания состояния lastIndex. И не используйте сложное непроверенное выражение на неограниченном пользовательском вводе.
Самостоятельная проверка
Сравните шаблон без якорей и с ^ и $. Затем вызовите глобальное выражение дважды на одной короткой строке и проследите изменение результата.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.