У меня есть следующий блок кода:Почему этот процесс RegExp вызывает бесконечный цикл?
var field,
reg = new RegExp('{{.*?}}', 'i'),
text = 'This is a string with 1: {{param1}}, 2: {{param2}} and 3: {{param3}} parameters.';
while (field = reg.exec(text)) {
console.log(field);
}
Если я включаю g
глобальный флаг, цикл работает нормально. Но если это не глобально, то reg.exec(text);
должен вернуть null
после первого совпадения и завершить цикл while
?
Попытка понять причину этого, если кто-то может разработать, я бы очень признателен.
Что произойдет, если вы избежите '{' и '}'? – npinti
Почему вы не захватываете шаблон ('()')? – Xlander
@npinti, я боюсь. – keldar