Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Reguläre Ausdrücke, allgemein als „regex“ oder „regexp“ bekannt, sind Zeichenfolgen, die ein Suchmuster beschreiben. Sie können reguläre Ausdrücke verwenden, um zu prüfen, ob eine Zeichenfolge ein bestimmtes Muster enthält, Informationen aus einer Zeichenfolge zu extrahieren und Teile einer Zeichenfolge durch neuen Text zu ersetzen.

Lernen Sie die grundlegende Syntax regulärer Ausdrücke und wie Sie sie in JavaScript verwenden.

Die grundlegende Syntax regulärer Ausdrücke

Es gibt zwei Möglichkeiten, wie Sie einen regulären Ausdruck in JavaScript erstellen können: mit einem regulären Ausdrucksliteral und mit der RegExp Konstrukteur.

Ein Literal eines regulären Ausdrucks besteht aus einem Muster, das zwischen Schrägstrichen eingeschlossen ist, gefolgt von einem optionalen Flag.

Zum Beispiel:

// Ohne Flagge
konst RegexAusdruck_1 = /pattern/

// Mit Flagge
konst RegexAusdruck_2 = /pattern/Flagge

instagram viewer

Ein Flag ist ein optionaler Parameter, den Sie einem regulären Ausdruck hinzufügen können, um sein Verhalten zu ändern. Zum Beispiel:

konst regexFlag = /the/g;

Der G Flag gibt an, dass der Ausdruck mit allen Vorkommen übereinstimmen soll, nicht nur mit dem ersten.

Sie können auch einen regulären Ausdruck mit dem erstellen RegExp Konstrukteur. Zum Beispiel:

konst Regex-Ausdruck = neuRegExp("Muster", "G");

Der RegExp Der Konstruktor benötigt zwei Parameter: ein Muster – eine Zeichenfolge oder ein Literal eines regulären Ausdrucks – und ein Flag (s).

Es gibt zwei ziemlich häufige Flags, die Sie mit regulären Ausdrücken in JavaScript verwenden werden:

  • G: Das globale Flag sorgt dafür, dass der reguläre Ausdruck mit allen Vorkommen des Musters in der angegebenen Zeichenfolge übereinstimmt, anstatt mit einem einzelnen Vorkommen.
  • ich: Das Flag für Groß- und Kleinschreibung bewirkt, dass der reguläre Ausdruck die Groß-/Kleinschreibung des Musters ignoriert und Groß- und Kleinbuchstaben in der angegebenen Zeichenfolge abgleicht.

Sie können Flags zusammen in einem einzelnen Ausdruck in beliebiger Reihenfolge verwenden. Zum Beispiel:

konst Regex-Ausdruck = neuRegExp("Muster", "gi");

Dieser Ausdruck stimmt mit allen Vorkommen von „Pattern“ überein, unabhängig von der Groß-/Kleinschreibung.

In regulären Ausdrücken haben bestimmte Zeichen, sogenannte Metazeichen, eine besondere Bedeutung. Sie können sie verwenden, um bestimmte Arten von Zeichen oder Mustern abzugleichen.

Hier sind einige der am häufigsten verwendeten Metazeichen und ihre Bedeutung:

  • Das Wildcard-Zeichen (.): Dieses Zeichen entspricht jedem einzelnen Zeichen außer einem Zeilenumbruch. Es ist ein nützliches Werkzeug, um Muster mit unbekannten Zeichen abzugleichen.
  • Der Kleene-Stern (*): Dieses Zeichen stimmt mit null oder mehr Vorkommen des vorangehenden Zeichens oder der vorangehenden Gruppe überein. Es ermöglicht, dass das vorangehende Zeichen oder die Gruppe beliebig oft in der Zeichenfolge erscheint, einschließlich Null.
  • Das optionale Zeichen (?): Dieses Zeichen entspricht keinem oder einem Vorkommen eines vorangehenden Zeichens oder einer vorangehenden Gruppe.
  • Anker für Linienanfang (^): Dieses Zeichen passt nur auf den Anfang einer Zeile oder eines Strings.
  • End-of-Line-Anker ($): Dieses Zeichen entspricht dem Ende einer Zeile oder eines Strings.
  • Zeichensatz/Klasse ([]): Ein Zeichensatz entspricht einem beliebigen Zeichen aus einem Satz von Zeichen in einer Zeichenfolge. Sie definieren sie mit eckigen Klammern [] und Sie können einen Satz fester Zeichen, Sonderzeichen oder bestimmte Zeichengruppen angeben.
  • Wechselzeichen (|): Dieses Zeichen entspricht dem vorhergehenden oder dem folgenden Zeichen oder der Gruppe. Es funktioniert ähnlich wie beim OR JavaScript-Operator.
  • Gruppierungszeichen (()): Mit dem Gruppierungszeichen können Sie Zeichen oder Teilausdrücke gruppieren, Operatoren als Einheit darauf anwenden und die Reihenfolge der Operationen steuern.

Testen einer Zeichenfolge gegen einen regulären Ausdruck in JavaScript

In JavaScript können Sie einen String mit mehreren Methoden gegen einen regulären Ausdruck testen.

In diesem Abschnitt wird davon ausgegangen, dass Sie über ein grundlegendes Verständnis von regulären Ausdrücken und Mustern verfügen. Wenn Sie sich mit regulären Ausdrücken nicht wohl fühlen, schauen Sie sich das an Ein Leitfaden für Anfänger zu regulären Ausdrücken Erste.

Die Testmethode

Der .prüfen() -Methode gibt einen booleschen Wert zurück, der angibt, ob der reguläre Ausdruck mit der Zeichenfolge übereinstimmt oder nicht. Diese Methode nimmt eine Zeichenfolge als Argument, um die Suche durchzuführen. Es ist besonders nützlich für einfache Kontrollen.

Zum Beispiel:

lassen regulärer Ausdruck = /.com$/;
lassen str = "beispiel.com";
Konsole.log (regex.test (str)); // WAHR

Dieser reguläre Ausdruck entspricht einer Zeichenfolge, die auf ".com" endet.

Die exec-Methode

Der .exec() -Methode gibt ein Array zurück, das den übereinstimmenden Text und alle erfassten Gruppen oder enthält Null wenn es keine Übereinstimmung findet. Diese Methode nimmt eine Zeichenfolge als Argument, um die Suche durchzuführen. Es ist nützlich für komplexere reguläre Ausdrücke.

Zum Beispiel:

lassen regulärer Ausdruck = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
lassen str = "123-456-7890";
lassen result = regex.exec (str);

Wenn (Ergebnis !== Null) {
Konsole.Protokoll(`${Ergebnis[0]} ist eine gültige Telefonnummer);
} anders {
Konsole.Protokoll("Ungültige Telefonnummer");
}

Der obige reguläre Ausdruck entspricht einer Zeichenfolge, die mit einem optionalen "(", drei Ziffern und ein optionales ")". Es sucht dann nach einem optionalen "-", "." oder Leerzeichen, gefolgt von drei Ziffern. Es sucht schließlich nach einem optionalen "-", "." oder ein Leerzeichen gefolgt von vier Ziffern am Ende der Zeichenfolge.

Dieser reguläre Ausdruck entspricht Telefonnummern im Format „(xxx) xxx-xxxx“, „xxx-xxx-xxxx“, „xxx.xxx.xxxx“ oder „xxx xxx xxxx“.

Wenn es eine Übereinstimmung findet, .exec() gibt ein Array zurück, das den übereinstimmenden Text und alle erfassten Gruppen (definiert durch Klammern) enthält. Jede Gruppe wird als zusätzliches Element in das zurückgegebene Array aufgenommen. Auf diese Weise können Sie auf bestimmte Teile des übereinstimmenden Textes zugreifen, was Ihnen helfen kann, Informationen aus einer Zeichenfolge zu extrahieren.

Die replace-Methode

Der .ersetzen() -Methode sucht nach einer Übereinstimmung zwischen einem regulären Ausdruck und einer Zeichenfolge und ersetzt den übereinstimmenden Text durch einen angegebenen Ersatztext. Dies ist eine Methode für String-Objekte und nimmt einen regulären Ausdruck und einen Ersatz-String als Argumente.

Zum Beispiel:

lassen Zeichenfolge = "Der schnelle braune Fuchs springt über den faulen Hund.";
lassen Ausdruck = /The/gi;
lassen newString = string.replace (Ausdruck, "A");
Konsole.log (neuerString); // "ein schneller brauner Fuchs springt über einen faulen Hund."

Dieses Beispiel ruft die auf ersetzen() Methode auf der Schnur Variable, Übergabe des regulären Ausdrucks, Ausdruck. Der reguläre Ausdruck stimmt mit allen Vorkommen von „The“ in der Zeichenfolge überein, unabhängig von der Groß-/Kleinschreibung. Der Aufruf der Methode replace weist sie an, jedes Vorkommen durch die Zeichenfolge „a“ zu ersetzen.

Leistungsüberlegungen bei der Verwendung regulärer Ausdrücke

Reguläre Ausdrücke helfen zwar beim Abgleichen und Manipulieren von Strings, können aber auch leistungsintensiv sein. Muster so spezifisch wie möglich zu gestalten und sie einfach zu halten, ist entscheidend, um sie leistungsfähig zu halten.