Regex ersetzen Text außerhalb von HTML-Tags
Ich habe dieses HTML:
"This is simple html text <span class='simple'>simple simple text text</span> text"
Ich muss nur Wörter finden, die sich außerhalb eines HTML-Tags befinden. Ich meine, wenn ich "einfach" und "Text" übereinstimmen möchte, sollte ich die Ergebnisse nur aus "Dies ist einfacher HTML-Text" und dem letzten Teil "Text" erhalten - das Ergebnis ist "einfach" 1 Übereinstimmung, "Text" 2 Streichhölzer. Könnte mir jemand dabei helfen? Ich verwende jQuery.
var pattern = new RegExp("(\\b" + value + "\\b)", 'gi');
if (pattern.test(text)) {
text = text.replace(pattern, "<span class='notranslate'>$1</span>");
}
value
ist das Wort, mit dem ich übereinstimmen möchte (in diesem Fall "einfach")text
ist"This is simple html text <span class='simple'>simple simple text text</span> text"
Ich muss alle ausgewählten Wörter (in diesem Beispiel ist es "einfach") mit umbrechen<span>
. Aber ich möchte nur Wörter einschließen, die sich außerhalb befindenirgendein HTML-Tags. Das Ergebnis dieses Beispiels sollte sein
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>
Ich möchte keinen Text darin ersetzen
<span class='simple'>simple simple text text</span>
Es sollte das gleiche sein wie vor dem Austausch.