Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Zusammenfassung regulärer Ausdrücke in JavaScript_Grundkenntnisse

Eine kurze Zusammenfassung regulärer Ausdrücke in JavaScript_Grundkenntnisse

WBOY
WBOYOriginal
2016-05-16 16:53:091132Durchsuche

1. So definieren Sie reguläre Ausdrücke

Es gibt zwei Möglichkeiten, reguläre Ausdrücke zu definieren: Konstruktordefinition und Literaldefinition für reguläre Ausdrücke. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var reg1 = new RegExp('d{ 5, 11} '); //
durch Konstruktor definieren var reg2 = /d{5, 12}/ //
durch direkte Menge definieren

Literalzeichen für reguläre Ausdrücke
o: NUL-Zeichen (u0000)
t: Tabulatorzeichen (u0009)
n: Zeilenumbruchzeichen (u000A)
v: Vertikales Tabulatorzeichen (u000B)
f: Formularvorschubzeichen (u000C)
r: Wagenrücklaufzeichen (u000D)
xnn: Lateinisches Zeichen, das durch die Hexadezimalzahl nn angegeben wird. Beispielsweise entspricht x0A
uxxxx: Unicode-Zeichen, das durch die Hexadezimalzahl xxxx angegeben wird, z. B. u0009 entspricht
🎜> ^: Entspricht beim mehrzeiligen Abruf dem Anfang einer Zeile
$ : Entspricht dem Ende einer Zeichenfolge. Beim mehrzeiligen Abrufen entspricht es dem Ende einer Zeile.
b: Entspricht einem Wort. Kurz gesagt, die Grenze ist die Position zwischen den Zeichen w und W oder die Position zwischen den Zeichen w und der Anfang oder das Ende der Zeichenfolge ([b] entspricht dem Rückschrittzeichen)
B: entspricht nicht- Die Position der Wortgrenze
(?=p): positive Lookahead-Behauptung mit der Breite Null, die Folgendes erfordert Die folgenden Zeichen sollen mit p übereinstimmen, aber ohne die Zeichen, die mit p
(?!p) übereinstimmen: Nullbreite negativ. Assertieren Sie den Lookahead, der erfordert, dass die folgende Zeichenfolge nicht mit p
übereinstimmt. Zeichenklasse für reguläre Ausdrücke
[...]: Beliebiges Zeichen in eckigen Klammern
[^...]: Nicht in eckigen Klammern Beliebiges Zeichen in eckigen Klammern
.: Beliebiges Zeichen außer Zeilenumbrüchen und anderen Unicode-Zeilenabschlusszeichen
w: Beliebig Wort bestehend aus ASCII-Zeichen, äquivalent zu [a-zA-Z0-9]
W: Jedes Wort, das nicht aus ASCII-Zeichen besteht, äquivalent zu [^a-zA-Z0-9]
s: Beliebig Unicode-Leerzeichen
S: Jedes Nicht-Unicode-Leerzeichen, achten Sie auf w und S. Anders
d: Beliebige ASCII-Zahl, äquivalent zu [0-9]
D: Beliebiges Zeichen außer ASCII-Ziffern, äquivalent bis [^0-9]
[b]: Rücktaste Direkte Menge (Sonderfall)
Wiederholte Zeichensyntax des regulären Ausdrucks
{n, m}: Übereinstimmung mit dem vorherigen Element mindestens n-mal, aber nicht mehr als m-mal
{n, }: Übereinstimmung mit dem vorherigen Element n-mal oder öfter
{n}: Übereinstimmung mit dem vorherigen Element n-mal
?: Übereinstimmung mit dem vorherigen Element 0 oder 1-mal, was bedeutet, dass Das vorherige Element ist optional und entspricht {0, 1. }
: Entspricht mindestens einem Mal dem vorherigen Element. Dies entspricht {1, }
. *: Entspricht dem vorherigen Element mindestens 0 Mal, entspricht {0, }
regulärer Ausdruck Auswahl, Gruppierung und Referenzzeichen von Ausdrücken
|: Auswahl, Übereinstimmung des Unterausdrucks links oder des Unterausdrucks rechts vom Symbol
(…): Kombination, Zusammenfassung mehrerer Elemente zu einem Einheit, diese Einheiten können durch Symbole wie „*“, „ „, „?“ und „|“ geändert werden, und die dieser Gruppe entsprechende Zeichenfolge kann für jede spätere Verwendung gespeichert werden
(?: ...): Nur Kombination, kombinieren Sie Elemente zu einer Einheit, erinnern Sie sich jedoch nicht an die Zeichen, die mit dem Mischen übereinstimmen
n: Passen Sie das erste übereinstimmende Zeichen der n-ten Gruppe an, die Gruppe ist ein Unterausdruck in Klammern (es kann auch verschachtelt sein), die Gruppe Index ist die Anzahl der linken Klammern von links nach rechts, Gruppierung in Form von „(?:“ ist nicht codiert
Regulärer Ausdrucksmodifikator
i: Führt einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durch
g: Führt einen globalen Abgleich durch , kurz gesagt, finden Sie alle Übereinstimmungen, anstatt anzuhalten, nachdem Sie die erste gefunden haben
m: Mehrzeiliger Übereinstimmungsmodus, ^ stimmt mit dem Anfang einer Zeile und dem Anfang einer Zeichenfolge überein, $ stimmt mit dem Ende der Zeile und dem Ende überein des Strings
String-Methode für den Mustervergleich
search(): Sein Parameter ist ein regulärer Ausdruck, der die Startposition des ersten passenden Teilstrings zurückgibt. Wenn kein passender Teilstring vorhanden ist, wird -1 zurückgegeben. Wenn der Parameter von search() kein regulärer Ausdruck ist, wird er zunächst über den RegExp-Konstruktor in einen regulären Ausdruck konvertiert. search() unterstützt keinen globalen Abruf, da er den Modifikator g ignoriert. Zum Beispiel:


Code kopieren Der Code lautet wie folgt:

var s = "JavaScript".search(/script/i); // s = 4

replace(): Wird zum Abrufen und Ersetzen verwendet. Empfängt zwei Parameter, der erste ist der reguläre Ausdruck und der zweite ist die zu ersetzende Zeichenfolge. Wenn der Modifikator g im regulären Ausdruck gesetzt ist, wird eine globale Ersetzung durchgeführt, andernfalls wird nur der erste passende Teilstring ersetzt. Wenn das erste Argument kein regulärer Ausdruck ist, wird die Zeichenfolge direkt durchsucht, anstatt in einen regulären Ausdruck konvertiert zu werden. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var s = "JavaScript".replace( /java/gi , "Script"); // s = Script Script

Match(): Sein Parameter ist ein regulärer Ausdruck. Wenn nicht, wird er über RegExp konvertiert und gibt ein Array aus übereinstimmenden Ergebnissen zurück. Wenn der Modifikator g gesetzt ist, wird ein globaler Match durchgeführt. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var d = '55 ff 33 hh 77 tt'.match (/d /g); // d = ["55", "33", "77"]

split(): Diese Methode wird verwendet, um die Zeichenfolge, die sie aufruft, in ein Array von Teilzeichenfolgen aufzuteilen. Das verwendete Trennzeichen ist der Parameter von split(), und sein Parameter kann auch ein regulärer Ausdruck sein. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var d = '123,31,453,645'. split(', '); // d = ["123", "31", "453", "645"]
var d = '21, 123, 44, 64, 67, 3'.split( /s*, s*/); // d = ["21", "123", "44", "64", "67", "3"]

2. RegExp-Objekt
Jedes RegExp-Objekt hat 5 Attribute. Das Quellattribut ist eine schreibgeschützte Zeichenfolge, die den Text des regulären Ausdrucks enthält. Das globale Attribut ist ein schreibgeschützter boolescher Wert, der angibt, ob dieser reguläre Ausdruck den Modifikator g hat. Das Attribut „ignoreCase“ ist ein schreibgeschützter boolescher Wert, der angibt, ob dieser reguläre Ausdruck den Modifikator i hat. Das Multiline-Attribut ist ein schreibgeschützter boolescher Wert, der angibt, ob dieser reguläre Ausdruck den Modifikator m hat. Das lastIndex-Attribut ist eine lesbare und schreibbare Ganzzahl. Wenn das passende Muster den g-Modifikator hat, speichert dieses Attribut die Startposition der nächsten Suche in der gesamten Zeichenfolge.
Das RegExp-Objekt verfügt über zwei Methoden. Der Parameter von exec() ist ein String und seine Funktion ähnelt match(). Die Methode exec() führt einen regulären Ausdruck für einen angegebenen String aus, d. h. führt eine passende Suche in einem String durch. Wenn keine Übereinstimmung gefunden wird, wird null zurückgegeben. Das erste Element dieses Arrays enthält die Zeichenfolge, die mit dem regulären Ausdruck übereinstimmt, und die übrigen Elemente sind die übereinstimmenden Teilzeichenfolgen Unabhängig davon, ob der reguläre Ausdruck den Modifikator g hat, wird dasselbe Array zurückgegeben. Wenn das reguläre Ausdrucksobjekt, das exec() aufruft, den Modifikator g hat, wird die lastIndex-Eigenschaft des aktuellen regulären Ausdrucksobjekts auf die Zeichenposition unmittelbar neben der übereinstimmenden Teilzeichenfolge gesetzt. Wenn exec() ein zweites Mal mit demselben regulären Ausdruck aufgerufen wird, beginnt der Abruf von der durch das lastIndex-Attribut angegebenen Zeichenfolge. Wenn exec() keine passenden Ergebnisse findet, wird lastIndex auf 0 zurückgesetzt. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var p = /Java/g;
var text = "JavaScript macht mehr Spaß als Java!"
var r;
while((r = p.exec(text)) != null) {
     console.log(r, ' lastIndex: ' p .lastIndex);
}

Eine andere Methode ist test(). Verwenden Sie test(), um einen bestimmten String zu überprüfen. Wenn er ein passendes Ergebnis des regulären Ausdrucks enthält, gibt er andernfalls false zurück. Zum Beispiel:

Code kopieren Der Code lautet wie folgt:
var p = /java/i;
p. test('javascript'); // true
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn