Свойство lastIndex
Возвращает позицию знака, с которого начинается следующее найденное совпадение в строке для поиска.
{RegExp | reArray}.lastIndex
Аргументы
RegExp
Обязательный. Глобальный объект RegExp.reArray
Обязательный. Массив, возвращенный методом exec объекта Regular Expression.
Заметки
Значения свойства lastIndex начинаются с нуля, это означает, что индекс первого знака равен нулю. Начальным значением свойства является –1. Это значение изменяется при каждом успешном обнаружении искомого выражения.
Свойство lastIndex объекта RegExp изменяется методами exec и test объекта RegExp, а также методами match, replace и split объекта String.
К значениям свойства lastIndex применяются следующие правила.
Если совпадения не найдены, то для свойства lastIndex устанавливается значение -1.
Если значение свойства lastIndex больше длины строки, то происходит сбой методов test и exec, а для свойства lastIndex устанавливается значение -1.
Если значение свойства lastIndex равно длине строки, то регулярное выражение совпадает при совпадении шаблона с пустой строкой. В противном случае поиск завершается неудачей и свойство lastIndex сбрасывается к значению -1.
Во всех других случаях для свойства lastIndex устанавливается позиция, следующая за последним найденным совпадением.
Начальным значением свойства RegExp.lastIndex является -1. Значение этого свойства доступно только для чтения, оно изменяется при каждом обнаружении совпадения.
Примечание
Свойства объекта RegExp недоступны при работе в быстром режиме, который используется в языке JScript по умолчанию.Чтобы выполнить компиляцию программы, в которой используются эти свойства, из командной строки, необходимо выключить быстрый режим с помощью параметра /fast-.Отключать параметр быстрого выполнения программ в ASP.NET небезопасно, поскольку могут возникнуть проблемы с многопоточным выполнением.
Пример
В следующем примере показано использование свойства lastIndex. Данная функция выполняет итерацию строки для поиска и печатает значения index и lastIndex для каждого слова в строке.
var src : String = "The quick brown fox jumps over the lazy dog.";
var re : RegExp = /\w+/g;
var arr : Array;
while ((arr = re.exec(src)) != null)
{
print(arr.index + "-" + arr.lastIndex + "\t" + arr[0]);
}
После выполнения этой программы выводится следующий результат:
0-3 The
4-9 quick
10-15 brown
16-19 fox
20-25 jumps
26-30 over
31-34 the
35-39 lazy
40-43 dog