Heim  >  Artikel  >  Web-Frontend  >  js verwendet reguläre Ausdrücke, um die Javascript-Fähigkeiten der ReplacementAll-Ersetzungsmethode zu implementieren

js verwendet reguläre Ausdrücke, um die Javascript-Fähigkeiten der ReplacementAll-Ersetzungsmethode zu implementieren

WBOY
WBOYOriginal
2016-05-16 16:39:052340Durchsuche

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn