Krippe auf JavaScript reguläre Ausdrücke

Mit dem Thema:


Allgemeine Beschreibung

Reguläre Ausdrücke sind Muster für bestimmte Kombinationen von Zeichen in Textzeichenfolgen zu suchen (ein Suchmuster passende genannt). Es gibt zwei Methoden der variablen reguläre Ausdrücke zuweisen, und zwar:
Mit Hilfe eines Objektinitialisierer: var re = / Muster / Schalter ?.
Mit dem RegExp Konstruktor: var re = new RegExp ( " Muster" [, "switch"]?).
Hier Muster - regulärer Ausdruck, und der Schalter - optional Suchoptionen.

Initialisierer - Objekt, zum Beispiel var re = / ab + c /, in Fällen angewandt werden , in denen der Wert des regulären Ausdrucks während der Skript unverändert bleibt. Diese regulären Ausdrücke werden während der Boot-Skript erstellt und kann somit schneller sein.

Der Aufruf der Konstruktor, zB var re = new RegExp ( " ab + c"), sollte in den Fällen eingesetzt werden , wo der Wert der Variablen variieren. Wenn Sie einen regulären Ausdruck mehr als einmal verwenden werden, ist es sinnvoll seine Kompilierung Methode Muster für eine effizientere Suche zu kompilieren.

Wenn Sie einen regulären Ausdruck erstellen, muss berücksichtigt werden, dass der Abschluss in Anführungszeichen, um die Notwendigkeit mit sich bringt konstant die Escape-Sequenz, wie in jedem anderen Zeichenfolge zu verwenden. Zum Beispiel sind die folgenden zwei Ausdrücke äquivalent:

	 var re = / \ w + / g;
	 var re = new RegExp ( "\\ w +", "g");  // In der "\" durch "\\" ersetzt
	

Hinweis: Der reguläre Ausdruck darf nicht leer sein: zwei Zeichen // Zeile den Beginn eines Kommentars zu definieren. Daher eine leere regulären Ausdruck angeben, verwenden Sie den Ausdruck /.?/.

Reguläre Ausdrücke werden Methoden der exec und Test RegExp - Objekt und Methoden Spiel, ersetzen, suchen und Split Objekt String verwendet. Wenn wir brauchen nur, ob eine bestimmte Zeichenfolge String zu überprüfen, nach dem Muster, das die Methoden des Tests oder Suche verwendet. Wenn jedoch müssen wir eine Teil (oder Teilkette) zu extrahieren, zu dem Muster, dann werden wir die Methoden der exec oder Spiel verwenden. ersetzen Methode, um eine Suche nach einer bestimmten Zeichenfolge liefert und ersetzen sie durch eine andere Zeichenfolge, und Split-Methode ermöglicht es Ihnen, einen String in mehrere Teil aufgeteilt, basierend auf dem regulären Ausdruck oder normalen Text-String. Weitere Informationen über die Verwendung von regulären Ausdrücken finden Sie in den entsprechenden Methoden.

Syntax für reguläre Ausdrücke

Ein regulärer Ausdruck kann aus gewöhnlichen Zeichen bestehen; in diesem Fall wird die vorbestimmte Kombination von Zeichen in der Zeichenkette entsprechen. Zum Beispiel entspricht der Ausdruck / com / zu den ausgewählten Teil in den folgenden Zeilen: ". Kommandant der Marine" "Lump", "gourmand" Allerdings gibt die Flexibilität und Leistungsfähigkeit von regulären Ausdrücken die Möglichkeit, ihre Sonderzeichen zu verwenden, die in der folgenden Tabelle aufgeführt sind.

Sonderzeichen in regulären Ausdrücken:

\ - Für Zeichen , die in der Regel buchstäblich behandelt werden, zeigt an, dass das nächste Zeichen ist etwas Besonderes. Zum Beispiel, / n / der Buchstabe n und / \ n / entspricht eine neue Zeile. Für Zeichen, die in der Regel speziell behandelt werden, bedeutet dies, dass das Zeichen wörtlich genommen werden sollte. Zum Beispiel / ^ / bedeutet den Anfang der Zeichenfolge und / \ ^ / ^ entspricht einem Zeichen. / \\ / Spiele Backslash \.

Passen Sie den Anfang der Zeile - ^.

$ - Übereinstimmung mit dem Ende der Leitung.

* - Entspricht der vorherigen Symbol Null oder mehrmals zu wiederholen.

+ - Übereinstimmung mit dem vorhergehenden Zeichen Wiederholung ein- oder mehrmals.

? - Entspricht der vorherigen Symbol Null oder eine Zeit zu durchlaufen.

. - Für jeden Charakter außer Newline.

(Muster) - Entspricht dem Linienmuster und speichert Entsprechung gefunden.

(?: Muster) - Entspricht der Linienmuster, aber erinnert sich nicht an die Spiele. Es wird die Probeneinheiten zu gruppieren, beispielsweise / bis (Tonnes | shka?) / - Ein Kürzel / cat | cat /.

(= Muster?) - Die Einhaltung der "voraussah", tritt auf, wenn das Linienmuster Linie , ohne Treffer auswendig zu lernen. Zum Beispiel / Fenster (= 95 |? 98 | NT | 2000) / entspricht in der Zeile "Windows" "Windows 98", aber auf der Linie "Windows 3.1" nicht entspricht. Nach der Suche passende weiter von der Position nächstes nach gefunden Korrespondenz stammend, ohne voraussehend.

(Muster ?!) - Einhaltung der "voraussah", tritt auf, wenn die Musterkette Mismatch ohne Streichhölzer gefundener auswendig zu lernen. Beispiel: / Windows-(95 | ?! 98 | NT | 2000) / entspricht in der Zeile "Windows" "Windows 3.1", sondern in einer Reihe ", die Windows 98" stimmt nicht überein. Nach der Suche passende weiter von der Position nächstes nach gefunden Korrespondenz stammend, ohne voraussehend.

x | y - Spiele entweder x oder y.

{N} - n - eine nicht negative ganze Zahl ist . Entspricht genau n Vorkommen des vorhergehenden Zeichens.

{N,} - n - eine nicht-negative ganze Zahl ist . Spiele n oder mehr Vorkommen des vorherigen Zeichens. / X {1} / Äquivalent / x + /. / X {0} / Äquivalent / x * /.

{N, m} - n und m - eine nicht-negative Zahl ist . Er entspricht nicht kleiner als n und höchstens m Vorkommen des vorherigen Zeichens. / X {0,1} / Äquivalent / x /?.

[Xyz] - Für jeden Charakter in der klammert.

[^ Xyz] - Für jeden Charakter anders als in eckigen Klammern.

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

[^ Az] - Entspricht einem beliebigen Zeichen außer liegen innerhalb des angegebenen Bereichs.

\ B - eine Wortgrenze passt, das heißt, die Position zwischen einem Wort und einem Leerzeichen oder einem Zeilenumbruch ...

B \ - Für jeden anderen Position als einer Wortgrenze.

\ CX - Spiele das Zeichen Strg + X. Zum Beispiel / \ cI / Äquivalent / \ t /.

\ D - die entsprechende Zahl. Entspricht [0-9].

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

\ F - Übereinstimmung mit dem Zeichen Übertragungsformat (FF).

\ N - Spiele ein Newline - Zeichen (LF).

r \ - Spiele einen Wagenrücklauf (CR).

\ S - Übereinstimmung mit dem Zeichenraum. Equivalent / [\ f \ n \ r \ t \ v] /.

\ S - Für jeden Nicht-Leerzeichen. Equivalent / [^ \ f \ n \ r \ t \ v] /.

\ T - Spiele einen Tab (HT).

\ V - Spiele eine vertikale Lasche (VT).

\ W - Entspricht Buchstaben, Zahlen oder Unterstrich. Äquivalent / [A-Za-z0-9_] /.

\ W - jedes Zeichen außer Buchstaben, Zahlen oder Unterstrichen. Äquivalent / [^ A-Za-z0-9_] /.

\ N n - positive Zahl. Entspricht der n-ten gespeicherten Teilkette. Sie wird durch Zählen der linken Klammern berechnet. Wenn die linke Klammer vor dem Symbol kleiner als n ist, dann äquivalent 0n auf \.

\ 0n n - Oktalzahl, nicht größer als 377. Spiele der Charakter mit Oktalcode n. Zum Beispiel / \ 011 / Äquivalent / \ t /.

\ Xn n - eine hexadezimale Zahl , bestehend aus zwei Zahlen. Entspricht dem Zeichen mit Hex-Code n. Zum Beispiel / \ x31 / Äquivalent / 1 /.

\ Un n - eine hexadezimale Zahl aus vier Ziffern besteht. Entsprechende Unicode-Zeichen mit Hex-Code n. Zum Beispiel, / \ u00A9 / Äquivalent / c /.

Reguläre Ausdrücke werden in ähnlicher Weise mit dem Rest der JavaScript-Ausdrücken berechnet, dh unter Berücksichtigung der Priorität der Operationen: .. Operationen mit höherer Priorität werden zuerst ausgeführt. Wenn die Operationen die gleiche Priorität haben, werden sie von links nach rechts ausgeführt. In der folgenden Tabelle sind die regulären Ausdruck Operationen in der Reihenfolge ihrer Prioritäten absteigend; Betrieb, in einer Zeile der Tabelle angeordnet sind, haben die gleiche Priorität.

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

Suchoptionen

Wenn Sie einen regulären Ausdruck erstellen können wir zusätzliche Suchoptionen angeben:
i (ignorieren Fall). Sie nicht zwischen Groß- und Kleinbuchstaben zu unterscheiden.
g (globale Suche). Die globale Suche nach allen Vorkommen der Probe.
m (mehrzeilige). Multi Search.
Jede Kombination dieser drei Optionen, zB ig oder gim.

Beispiel

	 var s = "Learning JavaScript-Sprache";
	 var re = / JAVA /;
	 var result = re.test (n)?  "" "" "Nein";
	 document.write ( "string" "+ s + Ergebnis +" entspricht dem Muster "+ re);
	

Da reguläre Ausdrücke zwischen Groß- und Kleinbuchstaben zu unterscheiden, zeigt dieses Beispiel den Text im Browser-Fenster:

Der String "Learning JavaScript - Sprache" entspricht nicht dem Muster / JAVA /

Wenn wir nun die zweite Zeile im Beispiel var re = / JAVA ersetzen / i;, dann wird der Bildschirm den Text angezeigt:

Der String "Learning JavaScript - Sprache" entspricht dem Muster / JAVA / i


Betrachten wir nun die globale Suchoption. Es wird allgemein Verfahren ersetzen bei der Suche nach der Probe und ersetzen mit einem neuen Teilkette verwendet. Tatsache ist, dass standardmäßig diese Methode ersetzt nur das erste Teilkette und gibt das Ergebnis. Betrachten Sie das folgende Szenario:

	 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 im Browser-Fenster Text, der zu dem gewünschten Ergebnis entspricht nicht: Wir Skripte im VBScript schreiben, aber JavaScript - ist nicht die einzige Skriptsprache. Um alle Vorkommen von "JavaScript" Linien wurden durch "VBScript" ersetzt, müssen wir den regulären Ausdruck re = / JavaScript / g var ändern; . Dann wird die resultierende Zeichenfolge wie folgt aussehen:

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

Schließlich ist ein Multi-line-Suchoption ermöglicht die Pattern-Matching Zeichenfolge, die aus mehreren Textzeilen besteht, durch einen Zeilenumbruch verbunden. Standardmäßig wird das Pattern-Matching beendet, wenn sie das Symbol eines Zeilenumbruch zu finden ist. Diese Option überwindet diese Einschränkung und stellt eine Liste der Probe über die Startlinie. Es wirkt sich auch auf die Auslegung einiger der Sonderzeichen in regulären Ausdrücken, nämlich: In der Regel Symbol ^ nur die erste Position übereinstimmt. Wenn mehrzeiligen Suchoption aktiviert ist, wird es mit jedem Linienelement verglichen, die durch das Symbol eines Zeilenumbruch vorausgeht. Normalerweise entspricht $ -Zeichen nur mit der letzten Position. Wenn mehrzeiligen Suchoption aktiviert ist, wird es mit jedem Linienelement verglichen, der ein Zeilenumbruch ist.

In Erinnerung an die gefundenen Teilzeichen

Wenn ein Teil eines regulären Ausdrucks in Klammern, dann wird der entsprechende Teilkette für eine spätere Verwendung gespeichert werden. Für den Zugriff auf die gespeicherten Teil verwendeten Eigenschaften $ 1,:, $ 9 RegExp-Objekt oder Elemente in dem Array von exec und Spiel zurückgegeben. Im letzteren Fall erfaßt die Anzahl und die gespeicherte Teil ist nicht begrenzt.

Das folgende Skript verwendet die Methode ersetzen Wörter in einer Reihe neu zu ordnen. So ersetzen Sie die gefundenen Text verwendet Eigenschaften von $ 1 und $ 2.

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

Dieses Skript zeigt im Browser-Fenster des Textes:

Bulgakow, Michail

da \ W = [A-Za-z0-9_], wird nicht funktionieren, die russischen Buchstaben. Wenn wir russischen Buchstaben verwenden wollen, dann müssen wir etwas ändern Sie den Code:

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

Dieses Skript zeigt im Browser-Fenster des Textes:

Bulgakow, Michail

Einführung

Konzepte

Reguläre Ausdrücke - ist ein leistungsfähiges Werkzeug für die eingehenden Daten zu verarbeiten. Das Problem, das Ersetzen oder Suchtext benötigt, kann schön mit diesem fertig werden "Sprache innerhalb einer Sprache." Obwohl die maximale Wirkung der regulären Ausdrücke können mit der Verwendung von serverseitigen Sprachen erreicht werden, unterschätzen immer noch das Potential dieser Anwendung und der Client-Seite.

Regex (regulärer Ausdruck) - Mittel zum Verarbeiten der Folge von Zeilen oder Zeichen, die Definition der Muster des Textes.

Modifier - entwickelt , um die regulären Ausdruck "anweisen".
Metazeichen - Sonderzeichen , die als Befehle Sprache für reguläre Ausdrücke dienen.

Ein regulärer Ausdruck wird als gewöhnliche Variable definiert, aber statt mit Anführungszeichen Schrägstrich, zum Beispiel:

  var reg = / reg_vyrazhenie / 

Unter den einfachsten Muster verstehen wir diese Muster, die keine Sonderzeichen erfordern.

Zum Beispiel ist es unser Ziel ist es, alle Buchstaben "p" (kleine und Kapital) dem lateinischen Großbuchstaben "R" in der Ausdruck Regulärer Ausdruck zu ersetzen.

Erstellen Sie eine Vorlage var reg = / p / und verwenden die Methode ersetzen Umsetzung der Pläne

	 <Script language = "JavaScript">
		 var str = "Regular Expressions"
		 var reg = / p /
		 var result = str.replace (reg, "R")
		 document.write (Ergebnis)
	 </ Script>
	

Das Ergebnis ist der String 'RegulyaRnye Ausdruck "Ersatz auf dem ersten Auftreten des Buchstaben" p "empfindlich Fall nur auftritt. Aber unter den Bedingungen unseres Problems ist dieses Ergebnis nicht passt ... Hier müssen wir den Modifikator "g" und "i", die sowohl einzeln als auch gemeinsam genutzt werden können.
Diese Modifikatoren sind am Ende des regulären Ausdrucks, der nach dem Schrägstrich gesetzt und haben folgende Bedeutung: Der Modifikator "g" - gibt den Suchbegriff als "global", dh in diesem Fall wird der Ersatz für alle Vorkommen des Buchstabens "p" auftreten. Nun sieht das Muster wie folgt aus : var reg = / p / g, es in unseren Code zu ersetzen

	 <Script language = "JavaScript">
		 var str = "Regular Expressions"
		 var reg = / p / g
		 var result = str.replace (reg, "R")
		 document.write (Ergebnis)
	 </ Script>
	
Wir bekommen die Zeichenfolge 'RegulyaRnye vyRazheniya'.

Der Zusatz "i" - setzt die Suche im String-unempfindliche, das Hinzufügen dieser Modifikator in unserem Template var reg = / p / gi, nachdem das Skript ausführen wir das gewünschte Ergebnis unseres Problems erhalten - 'RegulyaRnye vyRazheniya'.

Sonderzeichen (Platzhalter)

Wildcards geben Sie die Art der Zeichenfolge, die Art und Weise des Suchbegriffs in der Textumgebung, sowie die Anzahl der Zeichen in einer bestimmten Art von Text, den Sie sich gerade befinden. Daher können Platzhalter in drei Gruppen eingeteilt werden:

Spiele Suche Wildcards.
Quantitative Meta-Zeichen.
Metazeichen Positionierung.
Spiele Suche Wildcards

unter denen \ b Wortgrenze, setzt den Zustand der Vorlage sollte am Anfang oder Ende von Wörtern durchgeführt werden.

\ B kein Wortgrenze, stellt die Bedingung , unter der die Vorlage nicht am Anfang oder Ende eines Wortes ausgeführt wird.

d \ eine Zahl von 0 bis 9.

\ D ist keine Zahl.

\ S einzigen Null - Zeichen entspricht dem Zeichen Raum.

\ S nicht leer einzelnes Zeichen für ein einzelnes Zeichen außer einem Raum.

\ W Buchstaben, Zahlen oder Unterstrich.

\ W sind nicht Buchstaben, Zahlen oder Unterstrich.

. ein beliebiges Zeichen, jede Zeichen, Buchstaben, Zahlen usw.

unter denen [] Zeichensatz, stellt die Bedingung der Vorlage sollte in jeder passenden Zeichen in eckigen Klammern durchgeführt werden.

[^] Set von Nicht-Zeichen, stellt die Bedingung , unter der die Vorlage sollte nicht für irgendwelche passenden Zeichen in eckigen Klammern durchgeführt werden.

Quantitative Wildcards

* Null oder mehrere Male.

? Null oder einmal

+ A weitere Male.

{N} genau n - mal.

{N,} n oder mehrere Male.

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

Metazeichen Positionierung

^ Zu Beginn der Zeile.

$ End Linien.

Einige Methoden für die Arbeit mit Vorlagen

ersetzen - die Methode , die wir am Anfang dieses Artikels verwendet wird , ist es entworfen , um die Probe abgestimmt String mit einem neuen Teilkette zu finden und zu ersetzen.

Test - diese Methode überprüft , um zu sehen , ob es eine Übereinstimmung in einer Reihe in Bezug auf die Vorlage und gibt false zurück, wenn das Muster Spiel endete mit einem Mißerfolg, sonst wahr.

Beispiel

	 <Script language = "JavaScript">
		 var str = "JavaScript"
		 var reg = / PHP /
		 var result = reg.test (str)
		 document.write (Ergebnis)
	 </ Script>
	

zeigt die Ergebnisse als falsch, da string "JavaScript" ist nicht gleich der Zeichenfolge "PHP".

Auch Testmethode kann wahr oder falsch ausgeben, anstatt jede andere Zeichenfolge vom Programmierer festgelegt.
Zum Beispiel:

	 <Script language = "JavaScript">
		 var str = "JavaScript"
		 var reg = / PHP /
		 var result = reg.test (str)?  "Der String angepasst": "Der String nicht zusammenfällt"
		 document.write (Ergebnis)
	 </ Script>
	
in diesem Fall als Ergebnis ist der String "string ist nicht übereinstimmenden".

exec - diese Methode führt einen String - Vergleich der Probe bestimmten Muster. Wenn das Muster Spiel endete mit einem Mißerfolg, wird null zurückgegeben. Andernfalls ist das Ergebnis eine Matrix von Zeichenketten zu einem vorgegebenen Muster entspricht. / * Das erste Element des Feldes gleich dem vorgegebenen Muster auf die ursprüngliche Zeichenkette erfüllt * /
Zum Beispiel:

	 <Script language = "JavaScript">
		 var reg = / (\ d +). (\ d +). (\ d +) /
		 var arr = reg.exec ( "Ich wurde am 1980.09.15 geboren")
		 document.write ( "Geburtsdatum:", arr [0], "<br>")
		 document.write ( "Geburtstag:", arr [1], "<br>")
		 document.write ( "Monat der Geburt:", arr [2], "<br>")
		 document.write ( "Geburtsdatum:", arr [3], "<br>")
	 </ Script>
	

Das Ergebnis ist vier Linien:
Geburtsdatum: 1980.09.15
Geburtstag: 15
Monat der Geburt: 09
Geburtsjahr: 1980

Abschluss

Der Artikel ist nicht über alle Funktionen und den Charme von regulären Ausdrücken für eine tiefere Untersuchung dieser Frage angezeigt würde vorschlagen, das Objekt RegExp zu untersuchen. Nur möchte ich die Aufmerksamkeit auf die Tatsache lenken, dass die Syntax für reguläre Ausdrücke als wie in JavaScript nicht nicht anders, und in PHP. Um zum Beispiel die Eingabe E-Mail, regulären Ausdruck, dass in JavaScript zu bestätigen, dass Sie das gleiche für PHP aussehen
/[0-9a-z_]+@[0-9a-z_^.]+.[az]{2,3}/i.

Reguläre Ausdrücke - ist eine Art von Suchmuster bestimmter Zeichenkombinationen in Strings mit regulären Ausdrücken sind als Schrägstrichen. Im Folgenden sind die wörtliche reguläre Ausdrücke.

Literale

wörtlich Beschreibung
\ Eingeschlossen in die Sonderzeichen und macht es auch klar, der Dolmetscher, die das nächste Zeichen - nicht wörtlich zu nehmen. Gebrauchte Zeichencodes zu Oktal, Abrufen gespeichert und Unterausdrücke für die Verwendung in der regulären Ausdrücken werden.
^ Anfang der Zeile
$ Zeilenende
* Es bedeutet, dass das vorhergehende Zeichen viele Male in Folge treffen müssen, oder nicht erfüllen
+ Es bedeutet, dass das vorhergehende Zeichen in der Bar ein oder mehrere Male treffen müssen
? Es bedeutet, dass das vorhergehende Zeichen in einer Reihe Zeit erfüllen müssen, oder treffen
{Anzahl} Es bedeutet, dass das vorhergehende Zeichen in einer Zeichenkette, die eine bestimmte Anzahl von Malen erfüllen muss,
{Anzahl} Es bedeutet, dass das vorhergehende Zeichen in einer Zeichenkette, die eine bestimmte Anzahl von Malen erfüllen müssen oder mehr
{Zahl1, Zahl2} Es bedeutet, dass die vorangehende Zeichen in einer Zeile aus der ersten in die zweite Anzahl von Malen entsprechen müssen
. Entspricht einem beliebigen Zeichen außer \ n (neue Zeile)
(Subexpression) Ich suche einen subexpression und speichert fand ich eine Gruppe von Zeichen
\ Gruppennummer Checkt das angegebene Gruppe von Zeichen mit Hilfe des vorherigen wörtlichen gespeichert
simvol1 | Symbol 2 Suchen Sie nach einer der beiden Zeichen
[Zeichensatz] Achten Sie auf das Symbol der Aufgaben
[^ Zeichensatz] Geben Sie für jedes Zeichen, das in dem Satz nicht enthalten ist
\ b Weist auf eine Wortgrenze, die Position zwischen einem Wort und einem Raum
\ B Gibt die Grenzfläche, die Position zwischen einem Wort und einem Raum
\ c Spiele das Steuerzeichen-Typ "Strg" + "Symbol"
\ d Eine beliebige Anzahl
\ D Jede nicht-numerischen Zeichen
\ f Seitenvorschub
\ n Newline
\ r Wagenrücklaufzeichen
\ s Raum, Reiter, neue Zeile oder einen Zeilenumbruch
\ t Tab
\ v vertikale Tabula
\ w Buchstaben, Zahlen oder Unterstrich
\ xKod shesnadtsaterichnym mit dem Codesymbol angegeben
\ oKod vosmerichnym mit dem Codesymbol angegeben
\ Gruppennummer Auszüge aus dem Speicher, eine vorher gespeicherte Gruppe von Zeichen mit einer bestimmten Anzahl

Beispiel

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

Dieser Ausdruck sucht für jede E-Mail-Adresse, sie in zwei Teile geteilt: die Mailbox-Namen und den Servernamen und speichert sie im Speicher als eine Gruppe von Zeichen, Nummern 1 und 2.

RegExp-Klasse

Diese Klasse ist für die Verarbeitung von über Leitungen regelyarnyh Ausdrücke verantwortlich. Sein Konstruktor nimmt die folgende Form:

  RegExp (Reguläre Ausdrücke Flags)

	

Es dauert nur eine obligatorische paremetr - eine "reguläre Ausdrücke", die in Anführungszeichen eingeschlossen ist. Die "Flags" sind zusätzliche Suchbegriffe und die Werte annehmen kann:

  • g - ist eine globale Suche gegeben, wenn dieses Flag gesetzt ist, dann wird der Ausdruck gibt alle die richtigen Worte.
  • i - ignorieren Groß- und Kleinschreibung
  • m - Multi-Suche

mit regelmäßigen varazheniyami sind drei Verfahren der String-Klasse zu umgehen:

  • Spiel - sucht in einer Zeichenkette einen regulären Ausdruck als Parameter übergeben mit und gibt ein Array mit den Suchergebnissen. Wenn nichts gefunden wird, gibt es null.
  • replase - führt in einem String mit einem regulären Ausdruck und gibt den resultierenden String suchen und ersetzen.
  • Suche - führt Poik in der Linie, einen regulären Ausdruck als Parameter übergeben verwendet, und gibt die Position des ersten Teilkette , die dem regulären Ausdruck übereinstimmt.

Eigenschaften

Immobilien Beschreibung
last Legt die Startposition in der Suchleiste
sourse Gibt den regulären Ausdruck String (schreibgeschützt)
global Legt fest, ob das Flag g und gibt wahr oder falsch sootvetsyavenno
ignoreCase Legt fest, ob das i-Flag und gibt wahr oder falsch sootvetsyavenno
mehrspurigen Legt fest, ob das Flag m sootvetsyavenno und gibt wahr oder falsch

Methoden

Verfahren Beschreibung
kompilieren (Regular vypazhenie g, i, m) Kompeliruet regulären Ausdruck in ein internes Format für einen schnelleren Betrieb kann verwendet werden, um den regulären Ausdruck zu ändern
exec (string) Ähnlich wie bei der Methode der Klasse String übereinstimmen, aber die Zeile, in der gesucht werden soll, übergeben als Parameter
Test (str) Ähnlich wie bei der Methode String Suchklasse, gibt wahr oder falsch ist abhängig von den Suchergebnissen

Beispiel

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

Hier ist dieser Abschnitt des Skripts sucht nach dem Text "www" in der Zeile, die einer Variablen zugewiesen worden ist "str" ​​unsensibel und Match-Methode gibt ein Array von Ergebnis mit den Suchergebnissen.

Die globale RegExp-Objekt

Diese globale Objekt wird in bostupa verwendet, um Ergebnisse mit regulären Ausdrücken zu suchen. Diese Aufgabe wird durch den Interpreter erzeugt und ist immer verfügbar. Format Zugriff auf seine Eigenschaften:

  RegExp.  Immobilien
 

Eigenschaften

Immobilien Beschreibung
$ Anzahl subexpression Es gibt einen der letzten abgestimmten subexpression (je nach Zahlen). Die Nummer kann 1-9, t.k.interpretator Läden ist diese Eigenschaft nur neun zuletzt angepasst subexpression, für den Zugang zum Rest des Arrays verwendet wird, die Rückkehr bedeutet, Spiel oder exec
Index Returns pozotsiyu in einer Reihe abgestimmt Teilzeichenfolge
Eingang | & _ Gibt eine Zeichenfolge zurück, die gesucht wird,
last Legt die Startposition in der Suchleiste
lastMatch | $ & Gibt die letzte abgestimmte Teilzeichenfolge
lastParent | $ + Gibt das letzte Auftreten einer Gruppe von Zeichen, wenn in einem regulären Ausdruck subexpression verwendet
leftContext | $ ' Gibt einen String zurück, bestehend aus allen Zeichen von der Startlinie bis zum letzten Teilkette abgestimmt, ohne
rightContext | $ ' Gibt einen String zurück, bestehend aus allen Charakteren aus dem letzten Vorkommen des Teilstrings, ohne es, bis zum Ende des Strings

Beispiele für die Verwendung von regulären Ausdrücken

URL Parsing

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

Dieses Skript bricht die Internet-Adresse von wenigen Komponenten. In regelyarnom Begriffe verwendet, um mehrere Teilausdrücke werden gespeichert Interpreter wie folgt: Erstens, die nach außen Ausdruck beibehalten, und dann intern. Nach einer regelmäßigen gefolgt von einem String Ausdruck (Ergebnis = re.exec (str);), die Adressen Aufbrechen beginnt, und die Adresse korrekt ist und überprüft weiter, im Fall eines positiven Ergebnisses, gibt es eine variable Zuordnung zu den entsprechenden Teilen der Adresse.

Funktion entfernen Leerzeichen am Anfang und Ende der Leitung

	 Funktion trim (str)
	 {
	  Return str.toString () ersetzen (/ ^ [] + /, '') .replace (/ [] + $ /, '.');
	 }
	
Eine weitere Option:
	 Funktion trim (str) {
	  Rückkehr str.replace (/ ^ \ s + | \ s + $ / g, '');
	  }
	

Suchen Sie Musik auf der Seite

 var mmReg = /? (: http: \ / \ / [\ w.] + \ /)? (?! \ / \ /) [^ <^> ^ "^ '^ \ s] + \ (.? ?: aiff | au | avi | flv | Mitte | mov | mp3 | ogg | ra | rm | spl | swf | wav | wma | wmv) (\ w) / ig; this.tmp = this.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])), ...