RegExp.lastIndex
Сводка
Свойство lastIndex
является целочисленным свойством регулярного выражения, доступным как для чтения, так и для записи, которое определяет индекс, с которого следует начинать следующее сопоставление.
Атрибуты свойства RegExp.lastIndex |
|
---|---|
Записываемое | да |
Перечисляемое | нет |
Настраиваемое | нет |
Синтаксис
regExpObj.lastIndex
Описание
Это свойство устанавливается только в том случае, если в регулярном выражении используется флаг "g"
, указывающий на необходимость глобального поиска. Оно подчиняется следующим правилам:
- Если свойство
lastIndex
больше длины строки, методыtest()
иexec()
завершатся с неудачей, а свойствоlastIndex
будет установлено в 0. - Если свойство
lastIndex
равно длине строки и регулярное выражение сопоставляется с пустой строкой, то регулярное выражение начнёт сопоставляться, начиная с позицииlastIndex
. - Если свойство
lastIndex
равно длине строки и регулярное выражение не сопоставляется с пустой строкой, то регулярное выражение не соответствует входу и свойствоlastIndex
сбрасывается в 0. - Во всех остальных случаях свойство
lastIndex
устанавливается в позицию, следующую за самым последним сопоставлением.
Примеры
Пример: использование свойства lastIndex
Рассмотрим следующую последовательность инструкций:
var re = /(привет)?/g;
Сопоставляется с пустой строкой.
console.log(re.exec("привет"));
console.log(re.lastIndex);
Выведет массив ["привет", "привет"]
, а свойство lastIndex
будет равным 6.
console.log(re.exec("привет"));
console.log(re.lastIndex);
Выведет массив ["", undefined]
, «пустой» массив, чей нулевой элемент является сопоставившейся строкой. В данном случае, ей является пустая строка, поскольку свойство lastIndex
было равно 6 (и остаётся равным 6), а строка "привет"
имеет длину 6.
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-properties-of-regexp-instances |
Совместимость с браузерами
BCD tables only load in the browser