lastIndex это свойство отдельного объекта
lastIndex это свойство отдельного объекта регулярного выражения.
Это свойство устанавливается, только если регулярное выражение использовало флаг "g" для выполнения глобального поиска. Применяются следующие правила:
-
Если lastIndex превышает размер строки, regexp.test и regexp.exec терпят неудачу, а lastIndex устанавливается в 0.
-
Если lastIndex равен длине строки и если регулярное выражение совпадает с пустой строкой, то регулярное выражение совпадает с вводом, начиная с lastIndex.
-
Если lastIndex равен длине строки и если регулярное выражение не совпадает с пустой строкой, то регулярное выражение не совпадает с вводом, а lastIndex снова устанавливается в 0.
-
Иначе lastIndex устанавливается в следующую позицию после самого последнего совпадения.
Например, рассмотрим следующую последовательность операторов:
re = /(hi)?/g |
Совпадает с пустой строкой.
|
re("hi") |
Возвращает ["hi", "hi"] с lastIndex, равным 2.
|
re("hi") |
Возвращает [""], пустой массив, чей нулевой элемент является совпавшей строкой. В данном случае это пустая строка, поскольку lastIndex был 2 (и всё ещё остаётся 2), а "hi" имеет размер 2.
|
Содержание раздела