2017-08-28 2 views
3

Ich versuche, einen regulären Ausdruck für folgende Kriterien zu schreibenErsetzen Sie Text in HTML-Zeichenfolge

Die Quellzeichenfolge kann optional einen HTML-Code enthalten. Was beibehalten werden sollte, sollte alles außerhalb des Tags durch einen statischen Text ersetzt werden.

function replaceCode(mystring){ 
    var replaceWith = "Hello!!!" ; 
    //do something with mystring here.. 
} 

var string1 = "<span>Title</span> A small note" ; 
var string2 = "Another big note" ; 

alert(replaceCode(string1)) ; 
alert(replaceCode(string2)) ; 

Resultierende Strings müssen

//string1 must become 
<span>Title</span> Hello!!! 

//string2 must become 
Hello!!! 
+0

Mögliches Duplikat von [jQuery: Element nach einem anderen Element hinzufügen] (https://stackoverflow.com/questions/2244605/jquery-add-element-after-another-element) – Jonathan

+0

Wenn der Text außerhalb des Bereichs geändert wird hallo, warum brauchst du string2? –

+0

Wie reguläre Ausdrücke gehen, gibt es verschiedene Varianten und Syntax basierend auf der Sprache, die Sie verwenden. Vielleicht möchten Sie den Kontext klären. Ich sehe, dass Sie die Frage mit JavaScript und HTML markiert haben, aber am besten, um klar zu sein. Vanille JavaScript oder verwenden Sie jQuery? – fjoe

Antwort

0

Sie sich folgende können tun:

var yourString = "<span>Title</span> any text to replace"; 
var yourReplacement = "Hello!"; 

//Split by html tags 
var tokens = yourString.split(/<\w+>\w+<\/\w+>/); 

for (var i = 0; i < tokens.lenght; i++) { 
    yourString = yourString.replace(tokens[i], yourReplacement); 
} 

Das aber ist wahrscheinlich nicht die beste Lösung und wird nicht für verschachtelte Tags arbeiten, aber passen Sie Ihre Beispiele.