#javascript #регулярные_выражения
Допустим, есть строка testestest. Если применить к ней регулярное выражение /(test)/g, то результат будет таков: testestest. Как сделать так, чтобы регулярное выражение захватывало и тот промежуточный testestest? Как это правильно называется?
Ответы
Ответ 1
Воспользуйтесь regexp.exec(str) Если флаг g есть, то вызов regexp.exec возвращает первое совпадение и запоминает его позицию в свойстве regexp.lastIndex. Последующий поиск он начнёт уже с этой позиции. Если совпадений не найдено, то сбрасывает regexp.lastIndex в ноль. let s = "testestest"; let r = /test/g; let m; while (m = r.exec(s)) { console.log("Match: " + m[0] + ", pos: " + m.index); r.lastIndex = m.index+1; } learn.javascript.ru: Методы RegExp и StringОтвет 2
var res = [] "testestest".replace(/(?=(test))/g, (m, g) => res.push(g)) console.log(res)
Комментариев нет:
Отправить комментарий