RegExp.lastIndex

Сводка

Свойство lastIndex является целочисленным свойством регулярного выражения, доступным как для чтения, так и для записи, которое определяет индекс, с которого следует начинать следующее сопоставление.

Атрибуты свойства RegExp.lastIndex
Записываемое да
Перечисляемое нет
Настраиваемое нет

Синтаксис

regExpObj.lastIndex

Описание

Это свойство устанавливается только в том случае, если в регулярном выражении используется флаг "g", указывающий на необходимость глобального поиска. Оно подчиняется следующим правилам:

  • Если свойство lastIndex больше длины строки, методы test() и exec() завершатся с неудачей, а свойство lastIndex будет установлено в 0.
  • Если свойство lastIndex равно длине строки и регулярное выражение сопоставляется с пустой строкой, то регулярное выражение начнёт сопоставляться, начиная с позиции lastIndex.
  • Если свойство lastIndex равно длине строки и регулярное выражение не сопоставляется с пустой строкой, то регулярное выражение не соответствует входу и свойство lastIndex сбрасывается в 0.
  • Во всех остальных случаях свойство lastIndex устанавливается в позицию, следующую за самым последним сопоставлением.

Примеры

Пример: использование свойства lastIndex

Рассмотрим следующую последовательность инструкций:

js
var re = /(привет)?/g;

Сопоставляется с пустой строкой.

js
console.log(re.exec("привет"));
console.log(re.lastIndex);

Выведет массив ["привет", "привет"], а свойство lastIndex будет равным 6.

js
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

Смотрите также