Вебсправочник
Справочник JavaScript

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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.