У регулярного выражения есть свойство
lastIndex
. Оно содержит позицию,
с которой будет начинать поиск следующий
вызов метода exec
.
То есть при каждом новом вызове метода
это свойство будет менять свое значение.
Давайте посмотрим на примере:
let str = '12 34 56';
let reg = /\d+/g;
console.log(reg.lastIndex); // начальное значение 0
let res;
while (res = reg.exec(str)) {
console.log(res); // [12], [34], [56]
console.log(reg.lastIndex); // 2, 5, 8
}
Преимуществом lastIndex
является то,
что его можно не только читать, но и
изменять, начиная поиск с заданной
позиции. Смотрите пример:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res = reg.exec(str)
console.log(res); // [34]
Дана следующая строка:
let str = '12:37 15:48 17:59';
Найдите в ней все подстроки с временем, начиная с пятого символа.