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



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




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