Regelmäßige Ausdrücke beschreiben ein Muster der String -Matching, mit dem prüft, ob eine Zeichenfolge ein bestimmtes Substring enthält, das passende Substring ersetzt oder ein Substring herausnimmt, das eine bestimmte Bedingung aus einer bestimmten Zeichenfolge usw. entspricht.
Da regelmäßige Ausdrücke nicht häufig verwendet werden, können sie sie häufig leicht vergessen. Der folgende Editor listet die häufig verwendeten Funktionen und Funktionen hier in prägnanter Weise für die zukünftige Anzeige auf:
Es gibt 2 häufig verwendete Funktionen des Regexp -Objekts
1. Testfunktion
Verwendung: regexpObject.test (String)
Rückgabe: TRUE, wenn die Zeichenfolge Zeichenfolge Texte enthält, die RegexpObject enthält, ansonsten Falsch.
Beschreibung: Diese Methode hat nichts Besonderes, und es gibt keine besondere Behandlung für Modifikator G.
Beispiel:
var url = 'http://www.baidu.com?a=1&b=2&c=3'ivar reg = /a=1/;console.log(reg.test(url)); // Das Ausgabeergebnis ist wahr
2. EXEC -Funktion
Verwendung: regexpObject.exec (String)
Rückgabe: Gibt ein Array zurück, in dem die passenden Ergebnisse gespeichert werden. Wenn keine Übereinstimmung gefunden wird, ist der Rückgabewert null.
beschreiben:
Die Exec () -Methode ist sehr leistungsfähig. Es ist eine allgemeine Methode und komplexer als die Test () -Methode und die Methoden, die reguläre Ausdrücke unterstützen.
Wenn exec () einen passenden Text findet, wird ein Ergebnisarray zurückgegeben. Ansonsten kehren Sie NULL zurück. Das 0. Element dieses Arrays ist Text, der mit dem regulären Ausdruck übereinstimmt. Das erste Element ist Text, der mit der 1. Subexpression von RegexpObject entspricht, falls vorhanden, das 2. Element ist Text, der mit der zweiten Subexpression von Regexpobject usw. übereinstimmt. Zusätzlich zum Array -Element- und Länge -Attribut gibt die Exec () -Methode zwei Eigenschaften zurück. Die Indexeigenschaft deklariert die Position des ersten Zeichens, der dem Text angepasst wird. Die Eingabeeigenschaft speichert die abgerufene Zeichenfolge. Wir können sehen, dass das zurückgegebene Array beim Aufrufen der Exec () -Methode eines nicht-globalen Regexp-Objekts das gleiche wie das Array ist, indem Sie die Methode String.Match () aufrufen.
Wenn RegexpObject jedoch ein globaler regulärer Ausdruck ist, ist das Verhalten von Exec () etwas komplizierter. Es beginnt mit der Suche nach String String am Zeichen der letzten Eigenschaft von RegexpObject. Wenn exec () den Text findet, der nach dem Matching den Ausdruck entspricht, wird die letzte Eigenschaft von RegexpObject auf die nächste Position des letzten Zeichens des passenden Textes festgelegt. Das heißt, Sie können alle übereinstimmenden Text in der Zeichenfolge durch die Exec () -Methode wiederholt durchrufen. Wenn exec () den passenden Text nicht mehr finden kann, gibt er NULL zurück und setzt die letzte Eigenschaft auf 0 zurück.
Beispiel:
Regelmäßiger Ausdruck mit Modifikator G.
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg = /(;…^?&= weibliche+)=(A^?&= weibliche). // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(reg.exec(url)); // ["B = 2", "B", "2", Index: 25, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(reg.exec(url)); // ["C = 3", "C", "3", Index: 29, Input: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(reg.exec(url)); //nullreg.lastindex = 0; // Dieser Code ist sehr wichtig. Bitte achten Sie auf das Verständnis von Console.log (Reg.exec (URL)); // ["a = 1", "a", "1", Index: 21, Eingabe: http://www.baidu.com?a=1&b=2&c=3]
Reguläre Ausdrücke ohne Modifikator g
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg = /(;…^?&= weibliche+)=(A^?&= weibliche). // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(reg.exec(url)); // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(reg.exec(url)); // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(reg.exec(url)); // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Reg.lastindex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Reg.lastindex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", Index: 21, Eingabe: http://www.baidu.com?a=1&b=2&c=3]
Hast du etwas anderes gefunden? Lesen Sie die Funktionsbeschreibung sorgfältig und Sie werden ^_ ^verstehen
Es gibt 4 Funktionen des String -Objekts, die die Regelmäßigkeit unterstützen. Wir werden nur über 2 von ihnen sprechen.
1. Übereinstimmungsfunktion
Verwendung: StringObject.match (SearchValue | Regexp), hier sprechen wir nur über den Regexp -Modus
Rückgabewert: Array, in dem die entsprechenden Ergebnisse gespeichert sind. Der Inhalt dieses Arrays hängt davon ab, ob Regexp die globale Flagge hat.
beschreiben:
Die match () -Methode ruft das String StringObject ab, um einen oder mehrere Text -Matching Regexp zu finden. Das Verhalten dieser Methode hängt in hohem Maße davon ab, ob Regexp die Flagge hat.
Wenn Regexp kein Flag G hat, kann die match () -Methode nur einmal in StringObject einmal ein Match ausführen. Wenn kein passender Text gefunden wird, gibt match () null zurück. Andernfalls wird ein Array zurückgegeben, in dem Informationen über den gefundenen passenden Text gespeichert sind. Das 0. Element des Arrays speichert dem Text entsprechend, während der REST -Store -Text mit der Suberpression des regulären Ausdrucks entspricht. Zusätzlich zu diesen regulären Array -Elementen enthält das zurückgegebene Array auch zwei Objekteigenschaften. Das Indexattribut deklariert die Position des Startzeichens, das dem Text im StringObject entspricht, und das Eingabeattribut deklariert eine Referenz auf das StringObject.
Wenn REGEXP das Flag G hat, führt die Match () -Methode eine globale Suche durch und findet alle Matching -Substrings in StringObject. Wenn kein passendes Substring gefunden wird, wird Null zurückgegeben. Wenn ein oder mehrere passende Substrings gefunden werden, wird ein Array zurückgegeben. Der von Global Match zurückgegebene Inhalt des Arrays unterscheidet sich jedoch sehr von der ersteren. Sein Array -Element speichert alle übereinstimmenden Substrings in StringObject, und es gibt kein Indexattribut oder ein Eingabematchribut.
Beispiel:
Ohne Modifikator g
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg =/([^? & =]+) = ([^? // ["a = 1", "a", "1", Index: 21, Eingabe: "http://www.baidu.com?a=1&b=2&c=3" weibliche Console.log(result.index); //21console.log(Result.input); //http://www.baidu.com?a=1&b=2&c=3" weiseconsole.log(result.input); //http://www.baidu.com?a=1&b=2&c=3
Mit Modifikator g
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg =/([^? & =]+) = ([^? // ["a = 1", "b = 2", "c = 3"] console.log (result.index); //undefinedConsole.log(Result.input); //undefiniert
Hast du etwas anderes gefunden? Lesen Sie die Funktionsbeschreibung sorgfältig und Sie werden ^_ ^verstehen
2. Ersetzen Sie die Funktion
Verwendung: StringObject.Replace (Regexp/Substr, Ersatz)
Rückgabewert: Eine neue Zeichenfolge, die nach dem Austausch des ersten Spiels oder alle Übereinstimmungen von Regexp durch Ersatz erhalten wurde.
Beschreibung: Die Methode Ersatz () des String StringObject führt eine Such- und Ersatzoperation aus. Es wird nach Substrings suchen, die Regexp in StringObject entsprechen und diese Substrings durch Ersatz ersetzen. Wenn Regexp über das globale Flag G hat, ersetzt die Methode Ersatz () alle übereinstimmenden Substrings. Andernfalls ersetzt es nur das erste passende Substring.
Der Ersatz kann eine Zeichenfolge oder eine Funktion sein. Wenn es sich um eine Zeichenfolge handelt, wird jede Übereinstimmung durch die Zeichenfolge ersetzt. Aber der $ -Scharakter im Ersatz hat eine spezifische Bedeutung. Wie in der folgenden Tabelle gezeigt, heißt es, dass die aus der Musteranpassung erhaltene Zeichenfolge für den Austausch verwendet wird.
| Charakter | Text ersetzen |
|---|---|
| $ 1, $ 2, ... $ 99 | Text, der mit den ersten bis 99. Subexpressionen in Regexp entspricht. |
| $ & | Ein Substring, das Regexp entspricht. |
| $ ` | Text links vom passenden Substring. |
| $ ' | Text rechts vom passenden Substring. |
| $$ | Direktes Messungssymbol. (Es bedeutet, dass wenn Sie es durch das $ -Symbol ersetzen möchten, zwei $ $ schreiben) |
Beispiel:
Ohne Modifikator g
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg =/([^? & =]+) = ([^? http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3
Mit Modifikator g
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg =/([^? & =]+) = ([^? a = 1, a, 1, 21, http://www.baidu.com?a=1&b=2&c=3 und b = 2, b, 2, 25, http://www.baidu.com?a=1&b=2&c=3 und | 'ok';}) console.log (url1); //http://www.baidu.com?ok&ok&ok
Wenn der zweite Parameter eine Zeichenfolge ist
var url = 'http://www.baidu.com?a=1&b=2&c=3'var reg =/([^? & =]+) = ([^? & =])*/; // ohne Modifikator gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&b=2&c=3var reg =/([^? & =]+) = ([^? & =])*/g; // mit Modifikator gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
Die oben genannte ist die umfassende Analyse von Übereinstimmungen, Ersetzen, EXEC und anderen Funktionen in JS -Zeichenfolgen und regulären Ausdrücken, die vom Editor eingeführt wurden. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!