Методы регулярного выражения exec и test.
-
Два основных метода регулярного выражения в JavaScript — это
test()
иexec()
. Оба используются для поиска совпадений, но возвращают разные данные.
test(regexp)
— проверяет, есть ли совпадениеЧто делает:
Проверяет, находит ли регулярное выражение совпадение в строке.
Возвращаетtrue
илиfalse
.const regex = /hello/; regex.test('hello world'); // true regex.test('goodbye'); // false
Используется для условий и валидации.
Быстр и прост.
️ Важно: Если у регулярки флаг
g
и вызываетсяtest()
несколько раз, она запоминает позицию (lastIndex
), и последующие вызовы идут с этой позиции — будьте осторожны!
exec(regexp)
— ищет совпадение и возвращает деталиЧто делает:
Ищет первое совпадение и возвращает массив с результатом (илиnull
, если не найдено).const regex = /(\d+)/; const result = regex.exec('Year 2025'); console.log(result); // ['2025', '2025', index: 5, input: 'Year 2025']
Возвращает:
result[0]
— всё совпадение ("2025"
)result[1]
— первая захваченная группа ("2025"
)index
— позиция совпадения (5)input
— исходная строка
Полезно, когда нужно не просто проверить, а получить данные совпадения.
При флаге
g
,exec()
можно вызывать несколько раз — каждый раз будет искать следующее совпадение (благодаря свойствуlastIndex
).const regex = /\w+/g; let match; while (match = regex.exec('hi there world')) { console.log(match[0]); // 'hi', 'there', 'world' }
Разница между
test()
иexec()
:Метод Возвращает Что проверяет Полезен для test()
true
/false
Есть ли совпадение Проверок, валидации exec()
Массив / null
Совпадение + детали Извлечения данных
Итог:
- Используй
test()
— чтобы проверить, подходит ли строка под шаблон. - Используй
exec()
— чтобы найти и получить совпадение (особенно с группами и при поиске всех совпадений в цикле).
-
E evo переместил эту тему из Языки программирования
-
-
-
-
-
Регулярные выражения как аргументы
Перенесена JavaScript -
Зачем нужны динамические импорты
Перенесена JavaScript -
-
© 2025 eduity.ru, Inc. Все права защищены.