quiero reemplazar una cadena en la página HTML usando JavaScript, pero ignorarlo, si se encuentra en una etiqueta HTML, por ejemplo:Regex cadena de reemplazo, pero no html dentro de la etiqueta
<a href="google.com">visit google search engine</a>
you can search on google tatatata...
quiero reemplazar google
por <b>google</b>
, pero no aquí:
<a href="google.com">visit google search engine</a>
you can search on <b>google</b> tatatata...
probé con éste:
regex = new RegExp(">([^<]*)?(google)([^>]*)?<", 'i');
el.innerHTML = el.innerHTML.replace(regex,'>$1<b>$2</b>$3<');
pero el problema: Tengo <b>google</b>
dentro de la etiqueta <a>
:
<a href="google.com">visit <b>google</b> search engine</a>
you can search on <b>google</b> tatatata...
¿Cómo se puede solucionar esto?
Estoy de acuerdo. Encuentra todos los nodos de texto en el DOM que contienen la cadena. Mantenga una lista negra de etiquetas en las que ** no desea ** reemplazar la cadena. Compruebe si el nodo de texto se encuentra dentro de una de estas etiquetas. Si no, haga su reemplazo, de lo contrario déjelo como está. – tvanfosson