72158e7b

Результаты выполнения регулярного выражения


Таблица 4.3 Результаты выполнения регулярного выражения

Объект

Свойство или ИндексОписание

В данном примере

myArrayСовпавшая строка и все запомненные подстроки.["dbbd", "bb"]
indexИндекс с базой 0 совпадения в строке ввода.1
inputСтрока-оригинал."cdbbdbsbz"
[0]Последние совпавшие символы."dbbd"
myRelastIndexИндекс, по которому находится начало следующего совпадения. (Это свойство устанавливается, только если регулярное выражение использует опцию g, описанную в разделе "Выполнение Глобального Поиска и Игнорирование Регистра Символов".)5
sourceТекст патэрна."d(b+)d"
RegExplastMatchПоследние совпавшие символы."dbbd"
leftContextПодстрока, предшествующая самому последнему совпадению."c"
rightContextПодстрока, идущая после самого последнего совпадения."bsbz"

RegExp.leftContext и RegExp.rightContext могут быть высчитаны из других значений.
RegExp.leftContext эквивалентно:

myArray.input.substring(0, myArray.index)

а RegExp.rightContext эквивалентно:

myArray.input.substring(myArray.index + myArray[0].length)

Как видно из второй формы этого примера, Вы можете использовать регулярное выражение, созданное инициализатором объекта, без присвоения его переменной. Если Вы это сделаете, каждое вхождение будет новым регулярным выражением. Поэтому, если Вы используете эту форму без присвоения значения, Вы не сможете получить доступ к свойствам этого регулярного выражения. Например, у Вас имеется такой скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">
myRe=/d(b+)d/g;
myArray = myRe.exec("cdbbdbsbz");
document.writeln("The value of lastIndex is " + myRe.lastIndex);
</SCRIPT>

Он выводит:

The value of lastIndex is 5

Но если у Вас такой скрипт:

<SCRIPT LANGUAGE="JavaScript1.2">
myArray = /d(b+)d/g.exec("cdbbdbsbz");
document.writeln("The value of lastIndex is " + /d(b+)d/g.lastIndex);
</SCRIPT>

Он выведет:

The value of lastIndex is 0

Появления /d(b+)d/g в этих двух операторах являются разными объектами регулярного выражения и, следовательно, имеют разные значения своих свойств lastIndex. Если Вам нужен доступ к свойствам регулярного выражения, созданного инициализатором объекта, Вы должны сначала присвоить его переменной.



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