Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Метод exec() выполняет поиск сопоставления регулярного выражения в указанной строке. Возвращает массив с результатами или null.
Если целью выполнения является просто определить, проходит оно или нет, используйте метод RegExp.prototype.test(), либо метод строки String.prototype.search().
Строка, с которой производится сопоставление регулярного выражения.
Если сопоставление успешно выполнилось, метод exec() возвращает массив и обновляет свойства объекта регулярного выражения. Возвращаемый массив в первом элементе содержит сопоставленный текст, а в последующих элементах — текст, захваченный при сопоставлении круглыми скобками.
Если сопоставление не удалось, метод exec() возвращает null.
Рассмотрим следующий пример:
Таблица ниже показывает результаты выполнения данного примера:
| Объект | Свойство/Индекс | Описание | Пример |
| result | [0] | Все сопоставившиеся символы в строке. | кайф, сплющь объём вши |
| [1], ...[n] | Сопоставившиеся подстроки в круглых скобках, если они присутствуют. Количество возможных подстрок ничем не ограничено. |
[1] = сплющь [2] = вши |
|
| index | Индекс сопоставления в строке, начинается с нуля. | 9 | |
| input | Оригинальная строка. | Эх, чужд кайф, сплющь объём вши, грызя цент. | |
| re | lastIndex | Индекс, с которого начнётся следующая попытка сопоставления. Если отсутствует флаг "g", остаётся равным нулю. | 31 |
| ignoreCase | Указывает, что в регулярном выражении используется флаг игнорирования регистра "i". | true | |
| global | Указывает, что в регулярном выражении используется флаг глобального сопоставления "g". | true | |
| multiline | Указывает, что в регулярном выражении используется флаг сопоставления по нескольким строкам "m". | false | |
| source | Текст шаблона регулярного выражения. | кайф,\s(сплющь).+?(вши) |
Если ваше регулярное выражение использует флаг "g", вы можете использовать метод exec() несколько раз для нахождения последовательных сопоставлений в одной и той же строке. Если вы сделаете это, поиск начнётся по подстроке строки str, начало которой определяется свойством lastIndex регулярного выражения (метод test() также увеличивает свойство lastIndex). Например, предположим, что у вас есть следующий скрипт:
Этот скрипт выведет следующий текст:
Примечание: не помещайте литерал регулярного выражения (или конструктор RegExp) внутрь условия while; это приведёт к бесконечному циклу, поскольку свойство lastIndex будет сбрасываться в ноль на каждой итерации цикла. Также убедитесь, что установлен флаг глобального сопоставления, в противном случае цикл будет бесконечным.
Вы можете использовать метод exec() без создания объекта RegExp:
Скрипт выведет в журнал строку «привет миру!».
| ECMAScript® 2027 Language Specification # sec-regexp.prototype.exec |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 17 дек. 2024 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.