RegExp.lastIndex
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Сводка
Свойство 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