This page has been robot translated, sorry for typos if any. Original content here.

Javascript Reguläre Ausdrücke Spickzettel

Nach Thema:


Allgemeine Beschreibung

Reguläre Ausdrücke sind Muster zum Suchen nach bestimmten Kombinationen von Zeichen in Textzeichenfolgen (eine solche Suche wird als Mustererkennung bezeichnet). Es gibt zwei Möglichkeiten, Variablen reguläre Ausdrücke zuzuweisen:
Verwenden Sie den Objektinitialisierer: var re = / pattern / switch?
Verwenden des RegExp-Konstruktors: var re = new RegExp ("pattern" [, "switch"]?).
Hier ist Muster ein regulärer Ausdruck und Schalter sind optionale Suchoptionen.

Objektinitialisierer, z. B. var re = / ab + c / , sollten in Fällen verwendet werden, in denen der Wert des regulären Ausdrucks unverändert bleibt, während das Skript ausgeführt wird. Solche regulären Ausdrücke werden während des Ladens des Skripts kompiliert und daher schneller ausgeführt.

Ein Konstruktoraufruf, z. B. var re = new RegExp ("ab + c") , sollte in Fällen verwendet werden, in denen sich der Wert einer Variablen ändert. Wenn Sie einen regulären Ausdruck mehrmals verwenden, ist es sinnvoll, ihn mit der Kompiliermethode zu kompilieren, um Muster effizienter zu finden.

Beim Erstellen eines regulären Ausdrucks sollten Sie berücksichtigen, dass das Einschließen in Anführungszeichen die Verwendung von Escape-Sequenzen wie bei jeder anderen Zeichenfolgenkonstante erfordert. Zum Beispiel sind die folgenden zwei Ausdrücke äquivalent:

	 var re = / \ w + / g;
	 var re = neue RegExp ("\\ w +", "g");  // In der "\" Zeile sollte durch "\\" ersetzt werden
	

Hinweis: Ein regulärer Ausdruck darf nicht leer sein: Zwei // Zeichen in einer Zeile geben den Beginn eines Kommentars an. Verwenden Sie daher den Ausdruck /.?/, um einen leeren regulären Ausdruck anzugeben.

Reguläre Ausdrücke werden von den exec- und test-Methoden des RegExp- Objekts und von den Methoden match, replace, search und split des String-Objekts verwendet. Wenn wir nur überprüfen müssen, ob die angegebene Zeichenfolge eine Teilzeichenfolge enthält, die mit dem Muster übereinstimmt, werden die Test- oder Suchmethoden verwendet. Wenn wir einen Teilstring (oder Teilstrings) extrahieren müssen, der dem Muster entspricht, müssen wir die Methoden exec oder match verwenden. Die Methode replace sucht nach einer gegebenen Teilzeichenkette und ersetzt sie durch eine andere Zeichenkette. Mit der Methode split können Sie eine Zeichenkette basierend auf einem regulären Ausdruck oder einer regulären Zeichenkette in mehrere Teilstrings aufteilen. Weitere Informationen zur Verwendung regulärer Ausdrücke finden Sie in der Beschreibung der relevanten Methoden.

Syntax für reguläre Ausdrücke

Ein regulärer Ausdruck kann aus gewöhnlichen Zeichen bestehen; In diesem Fall entspricht es der angegebenen Kombination von Zeichen in der Zeichenfolge. Zum Beispiel entspricht der Ausdruck / com / den ausgewählten Teilsträngen in den folgenden Zeilen: "Klumpen", "Gourmet", "Oberbefehlshaber der Flotte". Die Flexibilität und Leistung regulärer Ausdrücke ermöglicht jedoch die Verwendung von Sonderzeichen, die in der folgenden Tabelle aufgeführt sind.

Sonderzeichen in regulären Ausdrücken:

\ - Für Zeichen, die normalerweise wörtlich interpretiert werden, bedeutet, dass das nächste Zeichen speziell ist. Zum Beispiel entspricht / n / dem Buchstaben n, und / \ n / entspricht einem Zeilenumbruchzeichen. Für Charaktere, die normalerweise als besonders behandelt werden, bedeutet dies, dass der Charakter wörtlich genommen werden sollte. Zum Beispiel bedeutet / ^ / den Anfang einer Zeile und / \ ^ / entspricht einfach dem Symbol ^. / \\ / entspricht dem umgekehrten Schrägstrich \.

^ - Entspricht dem Anfang der Zeile.

$ - Entspricht dem Ende der Zeile.

* - Entspricht einer Wiederholung des vorherigen Zeichens null oder mehrmals.

+ - Entspricht der Wiederholung des vorherigen Zeichens ein oder mehrere Male.

? - Entspricht der Wiederholung des vorherigen Zeichens Null oder einmal.

. - Entspricht einem beliebigen Zeichen außer dem Newline-Zeichen.

(Muster) - Entspricht der Musterlinie und merkt sich das gefundene Match.

(?: pattern) - Entspricht dem Zeichenfolgenmuster, erinnert sich jedoch nicht an die gefundene Übereinstimmung. Wird verwendet, um Teile eines Samples zu gruppieren, zum Beispiel / ko (?: T | scale) / ist eine kurze Aufnahme des Ausdrucks / cat | cat /.

(? = pattern) - Die Übereinstimmung mit "peering forward" tritt auf, wenn die Musterlinie übereinstimmt, ohne die gefundene Übereinstimmung zu speichern. Beispiel: / Windows (? = 95 | 98 | NT | 2000) / entspricht "Windows" in der Zeichenfolge "Windows 98", stimmt jedoch in der Zeichenfolge "Windows 3.1" nicht überein. Nach dem Abgleich wird die Suche von der Position fortgesetzt, die der gefundenen Übereinstimmung folgt, ohne nach vorne zu schauen.

(?! pattern) - Die Übereinstimmung mit "Vorausschau" tritt auf, wenn die Musterzeichenfolge nicht übereinstimmt, ohne die gefundene Übereinstimmung zu speichern. Beispiel: / Windows (?! 95 | 98 | NT | 2000) / entspricht "Windows" in der Zeichenfolge "Windows 3.1", stimmt aber in der Zeichenfolge "Windows 98" nicht überein. Nach dem Abgleich wird die Suche von der Position fortgesetzt, die der gefundenen Übereinstimmung folgt, ohne nach vorne zu schauen.

x | y - Entspricht x oder y.

{n} - n ist eine nicht negative Zahl. Finde genau n Vorkommen des vorherigen Charakters.

{n,} - n ist eine nicht negative Zahl. Passe n oder mehrere Vorkommen des vorherigen Zeichens an. / x {1,} / entspricht / x + /. / x {0,} / entspricht / x * /.

{n, m} - n und m sind nicht negative Zahlen. Entspricht mindestens n und höchstens m Vorkommen des vorherigen Zeichens. / x {0,1} / entspricht / x? /.

[xyz] - Stimmt mit einem beliebigen in eckigen Klammern eingeschlossenen Zeichen überein.

[^ xyz] - Entspricht einem beliebigen Zeichen außer den in eckigen Klammern eingeschlossenen Zeichen.

[az] - Entspricht einem beliebigen Zeichen im angegebenen Bereich.

[^ az] - Entspricht einem beliebigen Zeichen außer den im angegebenen Bereich.

\ b - Entspricht der Wortgrenze, d. h. der Position zwischen dem Wort und einem Leerzeichen oder einem Zeilenumbruch.

\ B - Entspricht einer anderen Position als der Wortgrenze.

\ cX - Entspricht dem Symbol Strg + X. Zum Beispiel ist / \ cI / äquivalent zu / \ t /.

\ d - Entspricht der Nummer. Entspricht [0-9].

\ D - Entspricht einem nicht numerischen Zeichen. Entspricht [^ 0-9].

\ f - Entspricht dem Formatübertragungszeichen (FF).

\ n - Entspricht dem Zeilenvorschubzeichen (LF).

\ r - Entspricht dem Wagenrücklaufsymbol (CR).

\ s - Entspricht einem Leerzeichen. Entspricht / [\ f \ n \ r \ t \ v] /.

\ S - Entspricht einem beliebigen Nicht-Leerzeichen-Zeichen. Entspricht / [^ \ f \ n \ r \ t \ v] /.

\ t - Entspricht dem Tab-Zeichen (HT).

\ v - Entspricht dem vertikalen Tabulatorzeichen (VT).

\ w - Entspricht dem lateinischen Buchstaben, der Zahl oder dem Unterstrich. Äquivalent zu / [A-Za-z0-9_] /.

\ W - Entspricht einem beliebigen Zeichen außer dem lateinischen Buchstaben, Ziffern oder Unterstrichen. Entspricht / [^ A-Za-z0-9_] /.

\ n n ist eine positive Zahl. Entspricht der n-ten gespeicherten Teilzeichenfolge. Berechnet durch Zählen der linken Klammern. Wenn die linke Klammer vor diesem Zeichen kleiner als n ist, entspricht das Äquivalent von \ 0n.

\ N ist eine Oktalzahl nicht größer als 377. Sie entspricht dem Zeichen mit dem Oktalcode n. Zum Beispiel ist / \ 011 / äquivalent zu / \ t /.

\ xn n ist eine Hexadezimalzahl, die aus zwei Ziffern besteht. Entspricht dem Zeichen mit dem Hexadezimalcode n. Zum Beispiel ist / \ x31 / äquivalent zu / 1 /.

\ un n ist eine Hexadezimalzahl, die aus vier Ziffern besteht. Entspricht dem Unicode-Zeichen mit einem hexadezimalen Code n. Zum Beispiel ist / \ u00A9 / äquivalent zu / c /.

Reguläre Ausdrücke werden auf die gleiche Weise wie andere JavaScript-Ausdrücke berechnet, d. H. Unter Berücksichtigung der Priorität von Operationen: Operationen, die eine höhere Priorität haben, werden zuerst ausgeführt. Wenn Operationen die gleiche Priorität haben, werden sie von links nach rechts ausgeführt. In der folgenden Tabelle sind die Operationen für reguläre Ausdrücke in absteigender Reihenfolge ihrer Prioritäten aufgelistet. Operationen in einer Zeile der Tabelle haben die gleiche Priorität.

Operationen:
  \
 () (? :) (? =) (?!) []
	 * +?  .  {n} {n,} {n, m}
	 ^ $ \ Metazeichen
	 |
	

Suchoptionen

Beim Erstellen eines regulären Ausdrucks können wir zusätzliche Suchoptionen angeben:
ich (ignoriere den Fall). Unterscheiden Sie nicht zwischen Klein- und Großbuchstaben.
g (globale Suche). Globale Suche nach allen Vorkommen der Stichprobe.
m (mehrzeilig). Mehrzeilige Suche
Eine beliebige Kombination dieser drei Optionen, z. B. ig oder gim.

Beispiel

	 var s = "JavaScript-Sprache lernen";
	 var re = / java /;
	 var result = re.test (s)?  "" ":" "nicht";
	 document.write ("String" "+ s + Ergebnis +" entspricht dem Muster "+ re);
	

Da reguläre Ausdrücke zwischen Klein- und Kleinbuchstaben unterscheiden, wird in diesem Beispiel der Text im Browserfenster angezeigt:

Die Zeile "JavaScript-Sprache lernen" stimmt nicht mit dem Muster / JAVA /

Ersetzen wir jetzt die zweite Zeile des Beispiels durch var re = / JAVA / i, dann wird der Text auf dem Bildschirm angezeigt:

Die Zeile "JavaScript-Sprache lernen" entspricht dem Muster / JAVA / i


Betrachten Sie nun die globale Suchoption. Es wird normalerweise von der Ersetzungsmethode verwendet, wenn nach einem Muster gesucht wird und die gefundene Teilkette durch eine neue ersetzt wird. Tatsache ist, dass diese Methode standardmäßig nur den ersten gefundenen Teilstring ersetzt und das erhaltene Ergebnis zurückgibt. Stellen Sie sich das folgende Szenario vor:

	 var s = "Wir schreiben Skripte in Javascript," +
	 "Aber JavaScript ist nicht die einzige Skriptsprache.";
	 var re = / javascript /;
	 document.write (s.replace (re, "VBScript"));
	

Es zeigt Text im Browserfenster an, der eindeutig nicht mit dem gewünschten Ergebnis übereinstimmt: Wir schreiben Skripte in VBScript, aber JavaScript ist nicht die einzige Skriptsprache. Damit alle Vorkommnisse der Zeichenfolge "JavaScript" durch "VBScript" ersetzt werden, müssen wir den Wert des regulären Ausdrucks in var re = / JavaScript / g ändern ; . Dann wird die resultierende Zeichenfolge:

Wir schreiben Skripte in VBScript, aber VBScript ist nicht die einzige Skriptsprache.

Schließlich ermöglicht die mehrzeilige Suchoption die Übereinstimmung mit einem Zeichenfolgenausdrucksmuster, das aus mehreren Textzeilen besteht, die durch einen Zeilenumbruch verbunden sind. Standardmäßig wird die Mustererkennung beendet, wenn ein Zeilenumbruchzeichen gefunden wird. Diese Option überwindet das angegebene Limit und bietet eine Suche nach dem Sample über die gesamte Quellzeile hinweg. Es wirkt sich auch auf die Interpretation bestimmter Sonderzeichen in regulären Ausdrücken wie folgt aus: Normalerweise entspricht das Zeichen ^ nur dem ersten Element einer Zeichenfolge. Wenn die Option für die mehrzeilige Suche aktiviert ist, wird sie auch jedem Element der Zeile zugeordnet, dem ein Zeilenumbruchzeichen vorangestellt ist. Normalerweise stimmt das Zeichen $ nur mit dem letzten Element einer Zeichenfolge überein. Wenn die Option für die mehrzeilige Suche aktiviert ist, wird sie auch einem beliebigen Element der Zeile zugeordnet, bei dem es sich um ein Zeilenumbruchzeichen handelt.

Memorisierung gefundener Teilstrings

Wenn ein Teil des regulären Ausdrucks in Klammern eingeschlossen ist, wird die entsprechende Teilzeichenfolge für die spätere Verwendung gespeichert. Um auf die gespeicherten Teilstrings zuzugreifen, werden die Eigenschaften $ 1,:, $ 9 des RegExp-Objekts oder die Elemente des Arrays verwendet, die von den Methoden exec und match zurückgegeben werden. Im letzteren Fall ist die Anzahl der gefundenen und gespeicherten Teilstrings nicht begrenzt.

Das folgende Skript verwendet die Methode replace, um Wörter in einer Zeichenfolge neu anzuordnen. Um den gefundenen Text zu ersetzen, werden die Eigenschaften $ 1 und $ 2 verwendet.

	 var re = / (\ w +) \ s (\ w +) / i;
	 var str = "Michail Bulgakow";
	 document.write (str.replace (re, "$ 2, $ 1"))
	

Dieses Skript zeigt den Text in einem Browserfenster an:

Bulgakow, Michail

weil \ w = [A-Za-z0-9_], russische Buchstaben funktionieren nicht. Wenn wir russische Buchstaben verwenden wollen, müssen wir den Code etwas modifizieren:

	 var re = / ([az] +) \ s ([az] +) / i; 
	 var str = "Michail Bulgakow"; 
	 document.write (str.replace (re, "$ 2, $ 1"));  // Bulgakow, Michael
	

Dieses Skript zeigt den Text in einem Browserfenster an:

Bulgakow, Michael

Einleitung

Grundlegende Konzepte

Reguläre Ausdrücke sind ein leistungsfähiges Werkzeug zur Verarbeitung eingehender Daten. Eine Aufgabe, die das Ersetzen oder Suchen von Text erfordert, kann mit Hilfe dieser "Sprache in der Sprache" wunderbar gelöst werden. Und obwohl die maximale Wirkung regulärer Ausdrücke bei der Verwendung von Serversprachen erreicht werden kann, sollten Sie die Möglichkeiten dieser Anwendung auf der Clientseite nicht unterschätzen.

Regulärer Ausdruck (regulärer Ausdruck) - ein Mittel zur Verarbeitung von Strings oder einer Zeichenfolge, die das Muster des Textes definiert.

Modifikator - entwickelt, um einen regulären Ausdruck zu "instruieren".
Metazeichen sind Sonderzeichen, die als Befehle für reguläre Ausdrücke dienen.

Ein regulärer Ausdruck wird als reguläre Variable festgelegt. Es wird nur ein Schrägstrich anstelle von Anführungszeichen verwendet. Beispiel:

  var reg = / reg_ausdruck / 

Mit den einfachsten Mustern werden wir solche Muster verstehen, die keine Sonderzeichen benötigen.

Angenommen, unsere Aufgabe besteht darin, alle Buchstaben "p" (klein und groß) durch den lateinischen Großbuchstaben "R" im Ausdruck Reguläre Ausdrücke zu ersetzen.

Erstellen Sie eine Vorlage var reg = / p / und verwenden Sie die replace-Methode, mit der wir unsere Pläne ausführen

	 <Skriptsprache = "JavaScript">
		 var str = "Reguläre Ausdrücke"
		 var reg = / p /
		 var result = str.replace (reg, "R")
		 document.write (Ergebnis)
	 </ script>
	

Als Ergebnis erhalten wir die Zeichenfolge "Reguläre Ausdrücke", die Ersetzung trat nur beim ersten Auftreten des Buchstabens "p" auf, wobei das Register berücksichtigt wurde. Aber unter den Bedingungen unseres Problems passt dieses Ergebnis nicht ... Hier brauchen wir die Modifikatoren "g" und "i", die sowohl einzeln als auch zusammen verwendet werden können.
Diese Modifikatoren werden nach einem Schrägstrich am Ende des regulären Ausdrucksmusters platziert und haben die folgenden Werte: Modifikator "g" - setzt die Suche in der Zeichenfolge als "global", d. H. in unserem Fall wird die Ersetzung für alle Vorkommen des Buchstabens "p" erfolgen. Jetzt sieht die Vorlage folgendermaßen aus: var reg = / p / g , ersetzt sie in unserem Code

	 <Skriptsprache = "JavaScript">
		 var str = "Reguläre Ausdrücke"
		 var reg = / p / g
		 var result = str.replace (reg, "R")
		 document.write (Ergebnis)
	 </ script>
	
Holen Sie sich die Zeichenfolge 'Regulatorische Ausdrücke'.

Modifikator "i" - setzt die Suche im String ohne Berücksichtigung der Groß- / Kleinschreibung und fügt diesen Modifikator zu unserer Vorlage hinzu. Var reg = / p / gi, nach dem Ausführen des Skripts erhalten wir das gewünschte Ergebnis unserer Aufgabe - 'Reguläre Ausdrücke'.

Sonderzeichen (Metazeichen)

Metazeichen geben den Typ der Zeichen der Suchzeichenfolge, die Art und Weise an, in der die Suchzeichenfolge im Text angeordnet ist, sowie die Anzahl der Zeichen eines bestimmten Typs im angezeigten Text. Daher können Meta-Zeichen in drei Gruppen unterteilt werden:

Passende Metazeichen.
Quantitative Metazeichen.
Metazeichen platzieren
Passende Metazeichen

\ b Wortgrenze, legt die Bedingung fest, unter der das Muster am Anfang oder am Ende von Wörtern ausgeführt werden soll.

\ B ist keine Wortgrenze, sondern legt eine Bedingung fest, unter der das Muster nicht am Anfang oder Ende eines Wortes ausgeführt wird.

\ d Ziffer von 0 bis 9.

\ D ist keine Ziffer.

\ s ist ein einzelnes leeres Zeichen, das mit dem Leerzeichen übereinstimmt.

\ S einzelnes nicht leeres Zeichen, jedes einzelne Zeichen außer Leerzeichen.

\ w Buchstabe, Zahl oder Unterstrich.

\ W ist kein Buchstabe, Ziffer oder Unterstrich.

. beliebige Zeichen, Zeichen, Buchstaben, Zahlen usw.

[] Zeichensatz, legt die Bedingung fest, unter der das Muster für eine Übereinstimmung von Zeichen in eckigen Klammern ausgeführt werden muss.

[^] eine Menge nicht eintreffender Zeichen, legt die Bedingung fest, unter der die Vorlage nicht ausgeführt werden soll, wenn Zeichen in eckigen Klammern stehen.

Quantitative Metazeichen

* Null und mehrmals.

? Null oder einmal

+ Ein oder mehrere Male.

{n} genau n mal.

{n,} n oder mehrmals.

{n, m} mindestens n mal, aber nicht mehr als m mal.

Metazeichen platzieren

^ am Anfang der Zeile.

$ am Ende der Zeile.

Einige Methoden zum Arbeiten mit Vorlagen

replace - wir haben diese Methode bereits am Anfang des Artikels verwendet, sie soll nach einem Beispiel suchen und den gefundenen Teilstring durch einen neuen Teilstring ersetzen.

test - Diese Methode prüft, ob in der Zeichenfolge Übereinstimmungen mit dem Muster vorhanden sind, und gibt false zurück, wenn die Mustererkennung fehlgeschlagen ist, andernfalls true.

Beispiel

	 <Skriptsprache = "JavaScript">
		 var str = "Javascript"
		 var reg = / php /
		 var result = reg.test (str)
		 document.write (Ergebnis)
	 </ script>
	

wird als Ergebnis false ausgeben Die Zeichenkette "javascript" ist nicht gleich der Zeichenkette "php".

Außerdem kann die Testmethode anstelle von "true" oder "false" eine beliebige andere Zeichenfolge zurückgeben, die vom Programmierer angegeben wurde.
zum Beispiel:

	 <Skriptsprache = "JavaScript">
		 var str = "Javascript"
		 var reg = / php /
		 var result = reg.test (str)?  "Die Saite fiel zusammen": "Die Saite stimmte nicht überein"
		 document.write (Ergebnis)
	 </ script>
	
In diesem Fall ist das Ergebnis die Zeichenfolge 'Die Zeichenfolge stimmt nicht überein'.

exec - Diese Methode führt eine String-Übereinstimmung mit dem Muster aus, das durch das Muster angegeben wurde. Wenn die Musterübereinstimmung fehlschlägt, wird null zurückgegeben. Andernfalls ist das Ergebnis ein Array von Teilstrings, die dem angegebenen Muster entsprechen. / * Das erste Element des Arrays entspricht der Quellzeichenfolge, die dem angegebenen Muster entspricht.
zum Beispiel:

	 <Skriptsprache = "JavaScript">
		 var reg = / (\ d +). (\ d +). (\ d +) /
		 var arr = reg.exec ("Ich wurde am 15.09.1980 geboren")
		 document.write ("Geburtsdatum:", arr [0], "<br>")
		 document.write ("Geburtstag:", arr [1], "<br>")
		 document.write ("Geburtsmonat:", arr [2], "<br>")
		 document.write ("Geburtsjahr:", arr [3], "<br>")
	 </ script>
	

Als Ergebnis erhalten wir vier Zeilen:
Geburtsdatum: 09/15/1980
Geburtstag: 15
Geburtsmonat: 09
Geburtsjahr: 1980

Fazit

Der Artikel zeigt nicht alle Möglichkeiten und Freuden von regulären Ausdrücken, für ein tieferes Studium dieses Problems empfehle ich Ihnen, das RegExp-Objekt zu studieren. Ich möchte auch darauf aufmerksam machen, dass die Syntax für reguläre Ausdrücke in JavaScript und PHP nicht anders ist. Zum Beispiel, um die Eingabe einer E-Mail zu validieren, ein regulärer Ausdruck, der für JavaScript, der für PHP gleich aussieht
/ [0-9a-z_] + @ [0-9a-z_ ^. [A +] [azaz_2] 3,3 /

Reguläre Ausdrücke sind eine Art Suchmuster für bestimmte Zeichenkombinationen in Strings, wobei reguläre Ausdrücke in Schrägstrichen eingeschlossen sind. Das Folgende sind Literale für reguläre Ausdrücke.

Literale

Buchstäblich Beschreibung
\ In den Sonderzeichen enthalten, und dem Interpreter wird klar, dass das nächste Zeichen kein Literal ist. Wird vor oktalen Zeichencodes zum Abrufen gespeicherter Teilausdrücke aus dem Speicher und zur Verwendung im regulären Ausdrucksliteral verwendet.
^ Startlinie
$ Ende der Zeile
* Gibt an, dass das vorangehende Zeichen mehrmals in der Zeichenfolge vorkommen sollte.
+ Gibt an, dass das vorangehende Zeichen mindestens einmal in der Zeichenfolge vorkommen muss.
? Gibt an, dass das vorangehende Zeichen einmal in der Zeichenfolge vorkommen soll.
{Nummer} Gibt an, dass das vorangehende Zeichen so oft in der Zeichenfolge vorkommen muss, wie angegeben.
{Nummer} Gibt an, dass das vorangehende Zeichen in der angegebenen Zeichenfolge oder mehrmals vorkommen muss.
{Nummer1, Nummer2} Gibt an, dass das vorangehende Zeichen in der Zeichenfolge von der ersten bis zur zweiten Anzahl auftreten muss.
. Bedeutet jedes Zeichen außer \ n (neue Zeile)
(Unterausdruck) Sucht nach einem Teilausdruck und speichert die gefundene Zeichengruppe im Speicher
\ Gruppennummer Ruft die angegebene Gruppe von Zeichen ab, die mit dem vorherigen Literal gespeichert wurden
Symbol1 | Symbol 2 Suche nach einem von zwei Charakteren
[Zeichensatz] Sucht nach einem Zeichen aus der angegebenen Menge
[^ Zeichensatz] Sucht nach einem beliebigen Zeichen, das nicht im Set enthalten ist.
\ b Bedeutet Wortgrenze, Position zwischen Wort und Raum
\ B Gibt die Grenze des Raums an, die Position zwischen dem Leerzeichen und dem Wort
\ c Entspricht einem Steuerzeichen wie "Strg" + "Zeichen"
\ d Eine beliebige Nummer
\ D Jedes nicht digitale Zeichen
\ f Seitenübersetzung Charakter
\ n Newline-Charakter
\ r Wagenrücklaufzeichen
\ s Leerzeichen, Tabulator, Zeilenumbruch oder Zeilenumbruch
\ t Registerkarten
\ v Registerkarte vertikal
\ w Buchstabe, Nummer oder Unterstrich
\ xCode Zeichen mit dem angegebenen Hexadezimalcode
\ oCode Symbol mit angegebenem Code
\ Gruppennummer Ruft eine zuvor gespeicherte Gruppe von Zeichen mit einer bestimmten Nummer aus dem Speicher ab

Beispiel

	 /(\w+)@({\w\._}+)/
	

Dieser Ausdruck sucht nach einer beliebigen E-Mail-Adresse und teilt sie in zwei Teile: den Namen des Postfachs und den Namen des Servers, und speichert sie im Speicher als Gruppen von Zeichen mit den Nummern 1 und 2.

RegExp-Klasse

Diese Klasse ist verantwortlich für die Verarbeitung von Strings mit regulären Ausdrücken. Sein Konstruktor hat die folgende Form:

  RegExp ( Regulärer Ausdruck , Flaggen )
	

Es akzeptiert nur einen obligatorischen Parameter - das ist der "Reguläre Ausdruck", der in Anführungszeichen steht. Der Parameter "Flags" ist eine zusätzliche Suchbedingung und kann Werte annehmen:

  • g - globale Suche wird gesetzt, wenn dieses Flag gesetzt ist, gibt der Ausdruck alle übereinstimmenden Wörter zurück.
  • ich - ignoriere Fall von Zeichen
  • m - Mehrzeilige Suche

Für die Arbeit mit regulären Anweisungen werden drei Methoden der String-Klasse verwendet:

  • Übereinstimmung - Führt eine Suche in einer Zeichenfolge unter Verwendung eines regulären Ausdrucks durch, der als Parameter übergeben wird, und gibt ein Array mit den Suchergebnissen zurück. Wenn nichts gefunden wird, wird null zurückgegeben.
  • replase - Führt eine Suche und Ersetzung in einer Zeichenfolge unter Verwendung von regulären Ausdrücken durch und gibt die resultierende Zeichenfolge zurück.
  • search - Führt eine Suche in einer Zeichenfolge unter Verwendung eines regulären Ausdrucks durch, der als Parameter übergeben wird, und gibt die Position der ersten Teilzeichenfolge zurück, die mit dem regulären Ausdruck übereinstimmt.

Eigenschaften

Eigentum Beschreibung
letzterIndex Legt die Position zum Starten der Suche in der Zeichenfolge fest.
sourse Gibt eine reguläre Ausdruckszeichenfolge zurück (schreibgeschützt)
global Bestimmt, ob das g-Flag vorhanden ist und gibt true bzw. false zurück.
ignoreCase Bestimmt das Vorhandensein des i-Flags und gibt true bzw. false zurück.
mehrspurig Bestimmt, ob das m-Flag vorhanden ist und gibt true bzw. false zurück.

Methoden

Methode Beschreibung
kompilieren ( regelmäßige Veröffentlichung von g, i, m ) Kompiliert einen regulären Ausdruck in ein internes Format, um die Arbeit zu beschleunigen, kann verwendet werden, um einen regulären Ausdruck zu ändern
Exec ( Zeichenfolge ) Es ähnelt der Übereinstimmungsmethode der Klasse String, aber die Zeichenfolge, in der die Suche ausgeführt werden soll, wird als Parameter übergeben.
Test ( Zeichenfolge ) Ähnlich wie die Suchmethode der String-Klasse, wird in Abhängigkeit von den Suchergebnissen true oder false zurückgegeben.

Beispiel

	 var result, re, str;
	 str = "http://www.netscape.com";
	 re = new RegExp ("w {3}", "i");
	 Ergebnis = str.match (re)
	

Hier sucht dieser Teil des Skripts in der Zeichenfolge, die der Variablen "str" ​​zugewiesen wurde, nach dem Text "ww". Die Vergleichsmethode gibt ein Ergebnisarray zurück, das die Suchergebnisse enthält.

RegExp globales Objekt

Dieses globale Objekt wird verwendet, um mit regulären Ausdrücken auf Suchergebnisse zuzugreifen. Dieses Objekt wird vom Interpreter selbst erstellt und ist immer verfügbar. Das Format des Zugriffs auf seine Eigenschaften:

  RegExp.  Eigenschaft
 

Eigenschaften

Eigentum Beschreibung
$ Anzahl der Teilausdrücke Gibt einen der letzten gefundenen Teilausdrücke zurück (abhängig von der Nummer). Die Zahl kann 1-9 sein, da der Interpreter nur neun zuletzt gefundene Teilausdrücke in dieser Eigenschaft speichert, um auf den Rest zuzugreifen, wird das von der Treffer- oder Exec-Methode zurückgegebene Array verwendet
Index Gibt die Position in der Zeichenfolge der gefundenen Teilzeichenfolge zurück.
Eingabe | & _ Gibt die Zeichenfolge zurück, nach der gesucht werden soll
letzterIndex Legt die Position zum Starten der Suche in der Zeichenfolge fest.
LetzteMatch | $ & Gibt den zuletzt gefundenen Teilstring zurück
LetztesParent | $ + Gibt die letzte gefundene Zeichengruppe zurück, wenn Unterausdrücke in einem regulären Ausdruck verwendet wurden.
leftContext | $ ' Gibt eine Zeichenfolge zurück, die aus allen Zeichen vom Anfang der Zeichenfolge bis zur zuletzt gefundenen Teilzeichenfolge besteht, ohne sie einzuschließen
rightContext | $ ' Gibt eine Zeichenfolge zurück, die bis zum Ende der ursprünglichen Zeichenfolge aus allen Zeichen der zuletzt gefundenen Teilzeichenfolge besteht

Beispiele für reguläre Ausdrücke

Parsing URL

	 var re, str, Protokoll, Adresse, Dateiname, Ergebnis;
	 str = "http // www.somedomain.ru/index2.html";
	 re = new RegExp ("((\ w +): \ / \ /)? ([^ /] +) (. *)?", "i");
	 result = re.exec (str);
	 if (Ergebnis! = null)
	 {
		 Protokoll = RegExp. $ 2;
		 Adresse = RegExp. $ 3;
		 Dateiname = RegExp. $ 4;
	 }
	

Dieses Skript teilt die Internetadresse in mehrere Teile auf. Im regulären Ausdruck wurden mehrere Unterausdrücke verwendet, die vom Interpreter wie folgt gespeichert werden: Zuerst wird der externe Ausdruck gespeichert und dann der interne Ausdruck. Auf den regulären Ausdruck folgt ein String (result = re.exec (str);), der mit dem Aufbrechen der Adresse beginnt, und dann wird die Korrektheit der Adresse überprüft und im Falle eines positiven Ergebnisses die Zuordnung der entsprechenden Teile der Adresse zu Variablen.

Die Funktion zum Entfernen von Leerzeichen am Anfang und Ende der Zeile

	 Funktionstrimmung (str)
	 {
	  return str.toString (). replace (/ ^ [] + /, '') .replace (/ [] + $ /, '');
	 }
	
Eine andere Option:
	 Funktion trimmen (str) {
	  return str.replace (/ ^ \ s + | \ s + $ / g, '');
	  }
	

Suche nach Musik auf der Seite

 var mmReg = / (?: http: \ / \ / [\ w.] + \ /)? (?!: \ / \ /) [^ <^> ^ "^ '^ \ s] + \. (? : aiff | au | avi | flv | mittel | mov | mp3 | ogg | ra | rm | spl | swf | wav | wma | wmv) (?! \ w) / ig; dies.tmp = dieser.allText.match ( mmReg); if (this.tmp && this.search_common_embeds) if ((this.tmp.length> 1)) if ((this.tmp.length> 2) || (this.tmp [0]! = this.tmp [1])) ...