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



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