2017-12-14 7 views
1

Ich habe eine Zeichenfolge wie untenRegulärer Ausdruck mehrere Vorkommen von Inhalten mit Anfang und Ende

Mickey <script> 333</script> 1 <script>eee</script> 2 <script>edddde</script> 3 

zu ersetzen und ich möchte es wie unten sein (ersetzen alle occourrence Start Skript und Skript beenden Tag mit leeren)

Mickey 1 2 3

Wenn ich unten versuchen (es ersetzt gesamten Inhalt zwischen f rste und letzte Skript Tag

data = data.replace(/<script>.*<\/script>/,"") 

ich Mickey 3

Antwort

3

Verwenden Sie den nicht-gierigen Betreiber:

data = data.replace(/<script>.*?<\/script>/g, ""); 
+0

Dies funktioniert und @asosnovsky funktioniert auch –

1

Sie haben die Gruppe global mit der richtigen Art zu erfassen, von Gruppierung:

data.replace(/<script>(.*?)<\/script>/g,"") 
2

Ich denke, es ist fast, was Sie für

data.replace(/<script>(.*?)<\/script> +/g, "")

Exakt suchen, was wollen Sie mit diesem erhalten werden kann:

data.replace(/<script>(.*?)<\/script>/g, "").replace(/\s+/g, " ")

+1

Diese Antwort tatsächlich zahlt am meisten Aufmerksamkeit auf das Detail in der Frage, wie es doppelte Leerzeichen gewährleistet sind ersetzt durch eins. Die Gruppe/Klammern um '(. *?)' Ist jedoch nicht notwendig. Also ohne die Gruppe kann es wie folgt geschrieben werden: 'data = data.replace (/

Verwandte Themen