Сводка
Свойство 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 6 (ECMA-262) Определение 'RegExp.lastIndex' в этой спецификации. |
Кандидат в рекомендации |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |