Die Syntax der Ersetzungsmethode lautet: stringObj.replace(rgExp, replaceText), wobei stringObj ein String (String) ist, reExp ein reguläres Ausdrucksobjekt (RegExp) oder ein String (String) sein kann und replaceText ein Ersatz für das Gefundene ist Zeichenfolge. . Um allen das Verständnis zu erleichtern, geben wir unten ein einfaches Beispiel.
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var stringObj="Volksrepublik Zhonggu, Volk Zhonggu";
//Ersetze den Tippfehler „Zhonggu“ durch „China“
//Und das ersetzte neue Zeichen zurückgeben
//Der Wert der ursprünglichen Zeichenfolge stringObj hat sich nicht geändert
var newstr=stringObj.replace("Zhonggu","China");
alarm(newstr);
</script>
„Zhonggu“ ist „China“
Der Wert von
China");
Wenn Sie schlauer sind als ich, werden Sie nach dem Lesen des obigen Beispiels feststellen, dass der zweite Tippfehler „Zhonggu“ nicht durch „China“ ersetzt wurde. Wir können die sekundäre Ersetzungsmethode ausführen, um den zweiten Tippfehler „Zhonggu“ zu ersetzen wurde wie folgt verbessert:
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var stringObj="Volksrepublik Zhonggu, Volk Zhonggu";
//Ersetze den Tippfehler „Zhonggu“ durch „China“
//Und das ersetzte neue Zeichen zurückgeben
//Der Wert der ursprünglichen Zeichenfolge stringObj hat sich nicht geändert
var newstr=stringObj.replace("Zhonggu","China");
newstr=newstr.replace("Zhonggu","China");
alarm(newstr);
</script>
„Zhonggu“ ist „China“
Der Wert von
China");
China");
Wir können sorgfältig darüber nachdenken, ob wir Tippfehler mit der N-ten Potenz ersetzen möchten. ? Oh, keine Angst. Mit dem regulären Ausdruck müssen Sie die Ersetzungsmethode nicht einmal ausführen, um einen Tippfehler zu vermeiden. . Der Code nach der Verbesserung des Programms lautet wie folgt
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var reg=new RegExp("久古","g"); //Erstelle ein reguläres RegExp-Objekt
var stringObj="Volksrepublik Zhonggu, Volk Zhonggu";
var newstr=stringObj.replace(reg,"China");
alarm(newstr);
</script>
Erstellen Sie ein reguläres RegExp-Objekt
Das Obige ist die einfachste Anwendung der Ersetzungsmethode. Ich frage mich, ob Sie sie verstehen. ? Beginnen wir mit einer etwas komplexeren Anwendung. .
Wenn Sie auf einigen Websites nach Artikeln suchen, werden Sie auf dieses Phänomen stoßen, das heißt, dass die Suchbegriffe hervorgehoben und farblich verändert werden? ? Wie wird dies erreicht? ? Tatsächlich können wir reguläre Ausdrücke verwenden, um dies zu erreichen. Das einfache Prinzip finden Sie im folgenden Code
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var str="Volksrepublik China, Volksrepublik China";
var newstr=str.replace(/(人)/g,"<font color=red>$1</font>");
document.write(newstr);
</script>
Dem oben genannten Programm mangelt es an Interaktivität. Lassen Sie uns das Programm so verbessern, dass Sie die Zeichen, die Sie suchen möchten, unabhängig eingeben können.
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var s=prompt("Bitte geben Sie die gesuchten Zeichen ein", "Person");
var reg=new RegExp("("+s+")","g");
var str="Volksrepublik China, Volksrepublik China";
var newstr=str.replace(reg,"<font color=red>$1</font>");
document.write(newstr);
</script>
Menschen");
Vielleicht versteht nicht jeder ganz, was das Sonderzeichen $1 bedeutet. Tatsächlich stellt $1 die Zeichen in den Klammern im Ausdruck links dar, also die erste Unterübereinstimmung. Ebenso stellt $2 die zweite Unterübereinstimmung dar. . Was ist ein Submatch? ? Laienhaft ausgedrückt ist jede Klammer auf der linken Seite die erste Wortübereinstimmung und die zweite Klammer ist die zweite Unterübereinstimmung. .
Wie implementieren wir die Operation, wenn wir Operationen an den gefundenen Zeichen durchführen möchten? ? Bevor wir es implementieren, sprechen wir zunächst darüber, wie man die Parameter einer bestimmten Funktion erhält. . Innerhalb der Funktion gibt es eine Argumentsammlung. Diese Sammlung speichert alle Parameter der aktuellen Funktion. Zum Verständnis lesen Sie bitte den folgenden Code.
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
Funktionstest(){
alarm("Anzahl der Parameter:"+arguments.length);
alarm("Der Wert jedes Parameters: "+arguments[0]);
alarm("Der Wert des zweiten Parameters"+arguments[1]);
//Sie können eine for-Schleife verwenden, um alle Parameter zu lesen
}
test("aa", "bb", "cc");
</script>
Alarm("
Alarm("
Alarm("
//Schleife zum Lesen aller Parameter
Nachdem wir das obige Programm verstanden haben, schauen wir uns das folgende interessante Programm an
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var reg=new RegExp("//d","g");
var str="abd1afa4sdf";
str.replace(reg,function(){alert(arguments.length);});
</script>
Wir waren überrascht, dass die anonyme Funktion zweimal ausgeführt wurde und die Funktion drei Parameter enthielt. Warum wurde sie zweimal ausgeführt? ? Dies ist leicht vorstellbar, da der von uns geschriebene reguläre Ausdruck mit einer einzelnen Zahl übereinstimmt und die erkannte Zeichenfolge zufällig zwei Zahlen enthält, sodass die anonyme Funktion zweimal ausgeführt wird. . Was sind die drei Parameter innerhalb der anonymen Funktion? ? Um dieses Problem zu klären, schauen wir uns den folgenden Code an.
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
Funktionstest(){
for(var i=0;i<arguments.length;i++){
Alert("Der Wert des "+(i+1)+"-ten Parameters: "+arguments[i]);
}
}
var reg=new RegExp("//d","g");
var str="abd1afa4sdf";
str.replace(reg,test);
</script>
for(var i=0;i<arguments.length;i++){
alarm("Werte der Parameter: "+arguments[i]);
}
Nach der Beobachtung haben wir festgestellt, dass der erste Parameter das übereinstimmende Zeichen darstellt, der zweite Parameter die minimale Indexposition des Zeichens beim Abgleich darstellt (RegExp.index) und der dritte Parameter die übereinstimmende Zeichenfolge darstellt (RegExp.input). Tatsächlich nimmt die Anzahl dieser Parameter zu, wenn die Anzahl der Teilübereinstimmungen zunimmt. Nachdem wir diese Fragen geklärt haben, können wir eine andere Schreibweise verwenden
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
Funktionstest($1){
return „<font color='red'>“+$1+“</font>“
}
var s=prompt("Bitte geben Sie die gesuchten Zeichen ein", "Person");
var reg=new RegExp("("+s+")","g");
var str="Volksrepublik China, Volksrepublik China";
var newstr=str.replace(reg,test);
document.write(newstr);
</script>
return „<font color='red'>“+$1+“</font>“
Menschen");
Nachdem Sie das obige Programm gelesen haben, stellt sich heraus, dass Sie mit den übereinstimmenden Zeichen machen können, was Sie wollen. Hier ein einfaches Anwendungsbeispiel:
Js-Code
Kopieren Sie den Codecode wie folgt:
<script language="javascript">
var str="Er ist 22 Jahre alt, sie ist 20 Jahre alt, sein Vater ist 45 Jahre alt und ihr Vater ist 44 Jahre alt, insgesamt sind es 4 Personen"
Funktionstest($1){
var gyear=(new Date()).getYear()-parseInt($1)+1;
return $1+"("+gyear+"birth year)";
}
var reg=new RegExp("(//d+)years old","g");
var newstr=str.replace(reg,test);
alarm(str);
alarm(newstr);
</script>