Regex pour remplacer le texte en dehors des balises html

J'ai ce code HTML:

"This is simple html text <span class='simple'>simple simple text text</span> text"

J'ai besoin de correspondre uniquement les mots qui sont en dehors de toute balise HTML. Je veux dire, si je veux correspondre à la “simple” et “texte”, je devrais obtenir les résultats que “C'est simple texte html” et la dernière partie “texte”, le résultat sera “simple” 1 match, “texte” 2 matchs. Quelqu'un pourrait-il m'aider? Je suis à l'aide de jQuery.

var pattern = new RegExp("(\\b" + value + "\\b)", 'gi');

if (pattern.test(text)) {
    text = text.replace(pattern, "<span class='notranslate'>$1</span>");
}
  • value est le mot que je veux correspondance (dans ce cas “simple”)
  • text est "This is simple html text <span class='simple'>simple simple text text</span> text"

J'ai besoin d'envelopper tous les mots sélectionnés (dans cet exemple, c'est “simple”) avec <span>. Mais je veux seulement d'envelopper les mots qui sont à l'extérieur de tout des balises HTML. Le résultat de cet exemple devrait être

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>

Je ne veux pas remplacer tout le texte à l'intérieur

<span class='simple'>simple simple text text</span>

Il devrait être le même qu'avant le remplacement.

Pourriez-vous parler de la langue que vous utilisez, et le résultat désiré, le remplacement, dans votre question, s'il vous plaît?
L'exemple a été ajouté.

OriginalL'auteur Sanya530 | 2013-09-04