Как видно из описания синтаксиса, метод exec регулярного выражения может быть вызван напрямую (regexp.exec(str)) или неявно (regexp(str)).
Если Вы ищете совпадение просто для того, чтобы определить true или false, используйте метод test или метод String search.
Если совпадение найдено, метод exec возвращает массив и обновляет свойства объекта регулярного выражения и предопределённого объекта регулярного выражения, RegExp. Если совпадение не найдено, метод exec возвращает null.
Рассмотрим пример:
<SCRIPT LANGUAGE="JavaScript1.2">В таблице показан результат работы скрипта:
myArray | Контекст массива myArray | ["dbBd", "bB", "d"] | ||||||||||||||||||||||||||||||||||||||||||
index | Индекс совпадений в строке с базой 0 | 1 | ||||||||||||||||||||||||||||||||||||||||||
input | Строка-оригинал | cdbBdbsbz | ||||||||||||||||||||||||||||||||||||||||||
[0] | Последние совпавшие символы | dbBd | ||||||||||||||||||||||||||||||||||||||||||
[1], ...[n] | Совпадения подстрок в скобках, если имеются. Количество подстрок в скобках не ограничивается. |
[1] = bB [2] = d | ||||||||||||||||||||||||||||||||||||||||||
myRe | lastIndex | Индекс начала следующего совпадения. | 5 | |||||||||||||||||||||||||||||||||||||||||
ignoreCase | Указывает, используется ли флаг "i" для игнорирования регистра символов | true | ||||||||||||||||||||||||||||||||||||||||||
global | Указывает, используется ли флаг "g" для глобального поиска совпадения | true | ||||||||||||||||||||||||||||||||||||||||||
source | Текст патэрна | d(b+)(d) | ||||||||||||||||||||||||||||||||||||||||||
RegExp | lastMatch $& | Последние совпавшие символы | dbBd | |||||||||||||||||||||||||||||||||||||||||
leftContext $\Q | Подстрока, предшествующая последнему совпадению | c | ||||||||||||||||||||||||||||||||||||||||||
rightContext $' | Подстрока, идущая после последнего совпадения | bsbz | ||||||||||||||||||||||||||||||||||||||||||
$1, ...$9 | Совпадения подстрок в скобках, если имеются. Количество возможных подстрок в скобках не ограничивается, но RegExp может содержать только последние девять. |
$1 = bB $2 = d | ||||||||||||||||||||||||||||||||||||||||||
lastParen $+ | Последнее совпадение подстроки в скобках, если имеется. | d |
Если в регулярно выражении используется флаг "g", Вы можете многократно использовать метод exec для поиска успешных совпадений в той же самой строке. При этом поиск стартует с подстроки str, специфицированной свойством lastIndex регулярного выражения. Например, такой скрипт:
<SCRIPT LANGUAGE="JavaScript1.2">Отобразит следующий текст:
Found abb. Next match starts at 3
Found ab. Next match starts at 9