Regex zastąp tekst poza tagami HTML
Mam ten HTML:
"This is simple html text <span class='simple'>simple simple text text</span> text"
Muszę dopasować tylko słowa, które są poza dowolnym tagiem HTML. Chodzi mi o to, że jeśli chcę dopasować „prosty” i „tekst”, powinienem uzyskać wyniki tylko z „To jest prosty tekst HTML” i ostatnia część „tekst” - wynikiem będzie „prosty” 1 mecz, „tekst” 2 mecze. Czy ktoś może mi w tym pomóc? Używam jQuery.
var pattern = new RegExp("(\\b" + value + "\\b)", 'gi');
if (pattern.test(text)) {
text = text.replace(pattern, "<span class='notranslate'>$1</span>");
}
value
to słowo, które chcę dopasować (w tym przypadku „proste”)text
jest"This is simple html text <span class='simple'>simple simple text text</span> text"
Muszę zawinąć wszystkie wybrane słowa (w tym przykładzie jest to „proste”)<span>
. Ale chcę owinąć tylko słowa, które są na zewnątrzkażdy Tagi HTML. Wynik tego przykładu powinien być
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>
Nie chcę zastępować żadnego tekstu wewnątrz
<span class='simple'>simple simple text text</span>
Powinien być taki sam jak przed wymianą.