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