Heim > Artikel > Web-Frontend > Geheimnisse des Ersetzens von JavaScript-Funktionen
Die Ersetzungsfunktion in JavaScript wird als String-Ersetzungsfunktion verwendet. Dies ist eine leistungsstarke String-Operationsfunktion und wird für allgemeine String-Operationen empfohlen. Dieser Aufsatz wird Ihnen ein tieferes Verständnis dafür vermitteln.
Die Ersetzungsfunktion akzeptiert zwei Parameter. Der erste Parameter ist eine Zeichenfolge oder ein regulärer Ausdruck. Der erste Parameter kann auch eine Zeichenfolge oder eine Funktion akzeptieren.
Erstens: Wenn der erste Parameter eine Zeichenfolge ist, müssen wir nicht mehr „Ich bin ein Junge“ sagen.replace(„Junge“, „Mädchen“), und die Ausgabe lautet: „Ich bin ein Mädchen“ . Worüber ich hier sprechen möchte, ist der Fall, in dem der erste Parameter regulär ist. Bei regulären Ausdrücken wird das Ersetzungsverhalten zunächst danach bestimmt, ob es global ist (global//g). Wenn alles vorhanden ist, wird alles ersetzt. Wenn es nicht global ist, wird nur die erste übereinstimmende Zeichenfolge ersetzt. Zum Beispiel:
"Ha Ha".replace(/bw+b/g, "He") // He He
"Ha Ha".replace(/bw+b/, "He") //He Ha
1: Der zweite Parameter ist eine Zeichenfolge:
Für das regelmäßige Ersetzen wird ein spezieller Marker vereinbart $:
1. $i (i:1-99): Stellt den Text dar, der mit dem regulären Unterausdruck von links nach rechts übereinstimmt.
2. $&: Stellt den vollständigen Text dar, der dem regulären Ausdruck entspricht.
3. $`(`:Switch-Skill-Taste): Stellt den Text links von der passenden Zeichenfolge dar.
4. $’(‘: einfaches Anführungszeichen): Gibt den rechten Text der passenden Zeichenfolge an.
5. $$: bedeutet $-Überweisung.
Hier sind einige Demos:
"boy & girl".replace(/(w+)s*&s*(w+)/g,"$2 & $1") / / Mädchen & Junge
"boy".replace(/w+/g,"$&-$&") // Junge-Junge
"javascript".replace(/script/,"$& != $`") //javascript != java
"javascript".replace(/java/," $ &$' ist ") // Javascript ist Skript
2: Der zweite Parameter ist eine Funktion:
Es wird empfohlen, die Funktionsmethode in ECMAScript3 zu verwenden, die in JavaScript1.2 implementiert ist. Wenn die Die Ersetzungsmethode wird jedes Mal ausgeführt. Diese Funktion wird jedes Mal aufgerufen und der Rückgabewert wird als neuer Wert zum Ersetzen verwendet.
Funktionsparameterspezifikationen:
1. Der erste Parameter ist der vollständige Text jeder Übereinstimmung ($&).
2. Der mittlere Parameter ist die übereinstimmende Zeichenfolge des Unterausdrucks, die Anzahl ist nicht begrenzt ($i (i:1-99))
3. Der vorletzte Parameter ist der übereinstimmende Index der übereinstimmenden Textzeichenfolge.
4. Der letzte Parameter repräsentiert die Zeichenfolge selbst.
Das wird in diesem Artikel über die Macht des Ersetzens gesagt. Der theoretische Kram ist alles trocken. Wir brauchen Beispiele, um alle leeren Probleme zu lösen:
1: Schreiben Sie den ersten Buchstaben einer Zeichenfolge groß >
String.prototype.capitalize = function(){ return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){ return p1+p2.toUpperCase(); } ); };, console.log("i am a boy !".capitalize()) Ausgabe: I Am A Boy !
2: Paarzeichenfolge Die Punktzahlen von „Zhang San 56 Punkte, Li Si 74 Punkte, Wang Wu 92 Punkte, Zhao Liu 84 Punkte“ werden extrahiert und zusammengefasst, die durchschnittliche Punktzahl wird berechnet und die durchschnittliche Punktzahldifferenz jeder Person wird ausgegeben .
var a = s.match(/\d+/g); var sum = 0; for(var i = 0 ; i < a.length; i++){ sum += parseFloat(a[i]); } var avg = sum / a.length; function f(){ var n = parseFloat(arguments[1]); return n + "分" + "(" + ((n > avg) ? ("超出平均分" + (n - avg)) : ("低于平均分" + (avg - n))) + "分)"; } var result = s.replace(/(\d+)分/g, f); console.log(result);Zhang San 56 Punkte (20,5 Punkte unter dem Durchschnitt), Li Si 74 Punkte (2,5 Punkte unter dem Durchschnitt), Wang Wu 92 Punkte (15,5 Punkte über dem Durchschnitt), Zhao Liu erzielte 84 Punkte (und übertraf damit die durchschnittliche Punktzahl um 7,5 Punkte)
Durch die Hinzufügung fortgeschrittener Regelmäßigkeitsanwendungen wird die Leistung von JavaScript gesteigert. Wir werden hier nicht auf die Regelmäßigkeitsklasse für fortgeschrittene Anwendungen eingehen.