RegExp: lastIndex

Властивість даних lastIndex примірника RegExp задає індекс, з якого почнеться наступний пошук збігу.

Спробуйте його в дії

Значення

Невід'ємне ціле число.

Атрибути властивості RegExp: lastIndex
Записна так
Перелічувана ні
Конфігуровна ні

Опис

Ця властивість задається тільки якщо примірник регулярного виразу має позначку g – на позначення глобального пошуку, або y – на позначення липкого пошуку. Коли на заданому введенні викликається test() або exec(), застосовуються наступні правила:

  • Якщо lastIndex – більше за довжину введення, то exec() або test() не знайде збігу, і lastIndex отримає значення 0.

  • Якщо lastIndex дорівнює або менше за довжину введення, то exec() або test() спробує знайти збіг зі введенням, починаючи від lastIndex.

    • Якщо exec() або test() знайшов збіг, то lastIndex отримує значення позиції кінця знайденого збігу.
    • Якщо exec() або test() не знайшов збігу, то lastIndex отримує значення 0.

Приклади

Використання lastIndex

Для прикладу – наступна послідовність інструкцій:

const re = /(hi)?/g;

Дає збіг з порожнім рядком.

console.log(re.exec("hi"));
console.log(re.lastIndex);

Повертає ["hi", "hi"], а lastIndex дорівнює 2.

console.log(re.exec("hi"));
console.log(re.lastIndex);

Повертає ["", undefined], порожній масив, чий нульовий елемент – текст збігу. В цьому випадку це порожній рядок, адже lastIndex мала значення 2 (і досі має значення 2), а hi має довжину 2.

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

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
lastIndex
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 5
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0

Дивіться також