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ą.

questionAnswers(2)

yourAnswerToTheQuestion