Клиентский JavaScript. Справочник

         

Описание


Как видно из описания синтаксиса, метод exec регулярного выражения может быть вызван напрямую (regexp.exec(str)) или неявно (regexp(str)).

Если Вы ищете совпадение просто для того, чтобы определить true или false, используйте метод test или метод String search.

Если совпадение найдено, метод exec возвращает массив и обновляет свойства объекта регулярного выражения и предопределённого объекта регулярного выражения, RegExp. Если совпадение не найдено, метод exec возвращает null.

Рассмотрим пример:

<SCRIPT LANGUAGE="JavaScript1.2">
//Совпадает один символ d, с последующим одним или более b, с последующим одним d
//Запоминается совпадение b с последующим d
//Регистр игнорируется
myRe=/d(b+)(d)/ig;
myArray = myRe.exec("cdbBdbsbz");
</SCRIPT>

В таблице показан результат работы скрипта:

Объект Свойство/Индекс Описание Пример
myArray Контекст массива myArray ["dbBd", "bB", "d"]

index Индекс совпадений в строке с базой 0 1
input Строка-оригиналcdbBdbsbz



[0] Последние совпавшие символыdbBd

[1], ...[n] Совпадения подстрок в скобках, если имеются. Количество подстрок в скобках не ограничивается. [1] = bB
[2] = d

myRelastIndex Индекс начала следующего совпадения. 5
ignoreCase Указывает, используется ли флаг "i" для игнорирования регистра символов true
global Указывает, используется ли флаг "g" для глобального поиска совпадения true
source Текст патэрнаd(b+)(d)

RegExplastMatch
$&
Последние совпавшие символыdbBd

leftContext
$\Q
Подстрока, предшествующая последнему совпадениюc

rightContext
$'
Подстрока, идущая после последнего совпаденияbsbz

$1, ...$9 Совпадения подстрок в скобках, если имеются. Количество возможных подстрок в скобках не ограничивается, но RegExp может содержать только последние девять. $1 = bB
$2 = d

lastParen 
$+
Последнее совпадение подстроки в скобках, если имеется. d

Если в регулярно выражении используется флаг "g", Вы можете многократно использовать метод exec для поиска успешных совпадений в той же самой строке. При этом поиск стартует с подстроки str, специфицированной свойством lastIndex регулярного выражения. Например, такой скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">
myRe=/ab*/g;
str = "abbcdefabh"
myArray = myRe.exec(str);
document.writeln("Found " + myArray[0] +
   ". Next match starts at " + myRe.lastIndex)
mySecondArray = myRe.exec(str);
document.writeln("Found " + mySecondArray[0] +
   ". Next match starts at " + myRe.lastIndex)
</SCRIPT>

Отобразит следующий текст:

Found abb. Next match starts at 3
Found ab. Next match starts at 9



Содержание раздела