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.
Спецификации
| Спецификация | Статус | Комментарии |
|---|---|---|
| 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' в этой спецификации. |
Стандарт |
Совместимость с браузерами
BCD tables only load in the browser