Я пытаюсь найти конкретные слова на html-странице для замены, однако при запуске этой функции функция RegExp () вызывает зависание chrome.Приведенный ниже код представляет собой раздел, в котором это происходит
function test(findWord, replaceWord){
var searchregexp = new RegExp(findWord.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), "gi");
console.log(searchregexp);
var elements = document.getElementsByTagName('*');
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
for (var j = 0; j < element.childNodes.length; j++) {
var node = element.childNodes[j];
if (node.nodeType === 3) {
var text = node.nodeValue;
var replacedText = text.replace(searchregexp, replaceWord);
if (replacedText !== text) {
element.innerHTML = replacedText;
}
}
}
}
}
Основываясь на некоторых других прочитанных мною материалах, кажется, что функция RegExp вызывает катастрофический откат, но я не совсем уверен, почему это так.дело или как бы я это решил.
Код работает, если я жестко закодировал определенное регулярное выражение, например / replace / gi, в text.replace ().Однако, если я попытаюсь сделать так, чтобы заменяемое слово не обязательно было постоянным, а с использованием новой функции RegExp chrome зависает