Regex reemplazar texto fuera de las etiquetas html
Tengo este HTML:
"This is simple html text <span class='simple'>simple simple text text</span> text"
Necesito hacer coincidir solo las palabras que están fuera de cualquier etiqueta HTML. Quiero decir que si quiero hacer coincidir "simple" y "texto", debería obtener los resultados solo de "Este es un texto HTML simple" y la última parte "Texto": el resultado será "simple" 1 coincidencia, "texto" 2 partidos. ¿Podría alguien ayudarme con esto? Estoy usando jQuery.
var pattern = new RegExp("(\\b" + value + "\\b)", 'gi');
if (pattern.test(text)) {
text = text.replace(pattern, "<span class='notranslate'>$1</span>");
}
value
es la palabra que quiero hacer coincidir (en este caso, "simple")text
es"This is simple html text <span class='simple'>simple simple text text</span> text"
Necesito envolver todas las palabras seleccionadas (en este ejemplo es "simple") con<span>
. Pero quiero envolver solo las palabras que están fueraalguna Etiquetas HTML. El resultado de este ejemplo debe ser
This is <span class='notranslate'>simple</span> html <span class='notranslate'>text</span> <span class='simple'>simple simple text text</span> <span class='notranslate'>text</span>
No quiero reemplazar ningún texto dentro
<span class='simple'>simple simple text text</span>
Debe ser el mismo que antes del reemplazo.