Циклы по вхождениям
Типичная задача – пройти по всем вхождениям шаблона в строку так, чтобы иметь доступ к объекту match в теле цикла, используя lastIndex и exec.
var input = "Строчка с 3 числами в ней... 42 и 88.";
var number = /(d+)/g;
var match;
while (match = number.exec(input))
console.log("Нашёл ", match[1], " на ", match.index);
// ? Нашёл 3 на 10
// Нашёл 42 на 29
// Нашёл 88 на 34
Используется тот факт, что значением присвоения является присваиваемое значение. Используя конструкцию match = re.exec(input) в качестве условия в цикле while, мы производим поиск в начале каждой итерации, сохраняем результат в переменной, и заканчиваем цикл, когда все совпадения найдены.