Heim > Artikel > Web-Frontend > js verwendet reguläre Ausdrücke, um die Javascript-Fähigkeiten der ReplacementAll-Ersetzungsmethode zu implementieren
JS-Strings haben die Methode replace(). Diese Methode ersetzt jedoch nur die erste übereinstimmende Zeichenfolge. Zum Beispiel:
<HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); alert(strNew); </script> </BODY> </HTML>
Wenn Sie alle ersetzen möchten, bietet JS keine Methode wie replaceAll. Der Effekt von Ersetzen kann mithilfe regulärer Tabellen erreicht werden:
str.replace(/word/g,"Excel")
g bedeutet: Führen Sie eine globale Übereinstimmung durch (finden Sie alle Übereinstimmungen, anstatt anzuhalten, nachdem die erste Übereinstimmung gefunden wurde).
<HEAD> <TITLE> New Document </TITLE> <script> function replaceAll(str) { if(str!=null) str = str.replace(/word/g,"Excel") return str; } </script> </HEAD> <BODY> <script> var str = "wordwordwordword"; var strNew = str.replace("word","Excel"); strNew = replaceAll(str); alert(strNew); </script> </BODY> </HTML>
Die obige Schreibmethode hat eine ähnliche Schreibmethode:
str.replace(new RegExp("word","gm"),"Excel")
g führt eine globale Übereinstimmung durch (findet alle Übereinstimmungen statt anzuhalten, nachdem die erste Übereinstimmung gefunden wurde).
m führt einen mehrzeiligen Abgleich durch.
Darüber hinaus können Sie auch die Prototypmethode des Stirng-Objekts hinzufügen:
String.prototype.replaceAll = function(s1,s2){ return this.replace(new RegExp(s1,"gm"),s2); }
Auf diese Weise können Sie replaceAll genauso verwenden wie die Ersetzungsmethode
str.replaceAll("word","Excel");
Zusammenfassend gibt es drei Möglichkeiten
1. str.replace(/oldString/g,newString)
2. str.replace(new RegExp(oldString,"gm"),newString)
3. String-Objekt-Prototypmethode replaceAll hinzufügen