Я хочу, чтобы заменить строку в HTML-страницы с помощью JavaScript, но игнорировать его, если он находится в HTML-тег, например:Regex заменить строку, но не внутри HTML тега
<a href="google.com">visit google search engine</a>
you can search on google tatatata...
Я хочу заменить google
на <b>google</b>
, но не здесь:
<a href="google.com">visit google search engine</a>
you can search on <b>google</b> tatatata...
Я пытался с этим:
regex = new RegExp(">([^<]*)?(google)([^>]*)?<", 'i');
el.innerHTML = el.innerHTML.replace(regex,'>$1<b>$2</b>$3<');
но проблема: я получил <b>google</b>
внутри <a>
тег:
<a href="google.com">visit <b>google</b> search engine</a>
you can search on <b>google</b> tatatata...
Как можно это исправить?
Я согласен. Найдите все текстовые узлы в DOM, содержащие строку. Храните черный список тегов, которые вы ** не ** хотите заменить строку. Проверьте, находится ли текстовый узел внутри одного из этих тегов. Если нет, сделайте свою замену, иначе оставьте ее как есть. – tvanfosson