Клиентский JavaScript 1.3 Руководство


              

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


Таблица 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. Если Вам нужен доступ к свойствам регулярного выражения, созданного инициализатором объекта, Вы должны сначала присвоить его переменной.

Содержание  Назад  Вперед