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.

Спецификации

Спецификация Статус Комментарии
ECMAScript 3-е издание. Стандарт Изначальное определение. Реализована в JavaScript 1.2.
JavaScript 1.5: свойство lastIndex является свойством экземпляра RegExp, а не самого объекта RegExp.
ECMAScript 5.1 (ECMA-262)
Определение 'RegExp.lastIndex' в этой спецификации.
Стандарт  
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'RegExp.lastIndex' в этой спецификации.
Стандарт  

Совместимость с браузерами

{{Compat}}

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