Reguläre Ausdrücke in JavaScript mit Beispielen: in der Praxis

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Reguläre Ausdrücke in JavaScript mit Beispielen: in der Praxis

\n\n

Reguläre Ausdrücke (RegExp) sind ein mächtiges Werkzeug zum Suchen, Ersetzen und Validieren von Text. In JavaScript, insbesondere in der Node.js-Umgebung, werden sie überall eingesetzt: vom Parsen von Logs bis zur Formularvalidierung. In diesem Artikel analysieren wir die Syntax, Methoden und schreiben praktische Beispiele, die Sie sofort in Ihren Projekten verwenden können.

\n\n

1. Grundlagen der Syntax und Erstellung von RegExp

\n\n

In JavaScript kann ein regulärer Ausdruck auf zwei Arten erstellt werden: als Literal und mit dem Konstruktor. Das Literal eignet sich für statische Muster, der Konstruktor für dynamische.

\n\n
// Literal (empfohlen)\nconst regexLiteral = /hello/gi;\n\n// Konstruktor (für dynamische Muster)\nconst pattern = "hello";\nconst flags = "gi";\nconst regexConstructor = new RegExp(pattern, flags);
\n\n

Flags (Modifikatoren):

\n
    \n
  • g — globale Suche (findet alle Übereinstimmungen, nicht nur die erste)
  • \n
  • i — Groß-/Kleinschreibung ignorieren
  • \n
  • m — mehrzeiliger Modus (Anker ^ und $ funktionieren für jede Zeile)
  • \n
  • s — erlaubt dem Punkt ., mit dem Zeilenumbruchzeichen übereinzustimmen
  • \n
  • u — aktiviert vollständige Unicode-Unterstützung
  • \n
\n\n

Basis-Metazeichen:

\n
    \n
  • . — jedes Zeichen außer Zeilenumbruch
  • \n
  • \\d — Ziffer (0-9)
  • \n
  • \\w — Buchstabe, Ziffer oder Unterstrich
  • \n
  • \\s — Leerzeichen (Leerzeichen, Tabulator, Zeilenumbruch)
  • \n
  • ^ — Zeilenanfang
  • \n
  • $ — Zeilenende
  • \n
  • [] — Zeichenklasse (z.B. [a-z] — alle Kleinbuchstaben)
  • \n
  • () — Erfassungsgruppe
  • \n
  • | — logisches ODER
  • \n
\n\n

2. Wichtige Methoden für die Arbeit mit regulären Ausdrücken

\n\n

In JavaScript gibt es mehrere Methoden, die mit RegExp arbeiten. Betrachten wir sie anhand praktischer Beispiele.

\n\n

2.1. test() — Prüfung auf Übereinstimmung

\n

Die Methode gibt true oder false zurück. Ideal für die Validierung.

\n\n
const emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconst emails = ["user@example.com", "invalid-email", "test@domain.co.uk"];\n\nemails.forEach(email => {\n  console.log(`${email}: ${emailPattern.test(email)}`);\n});\n// user@example.com: true\n// invalid-email: false\n// test@domain.co.uk: true
\n\n

2.2. exec() — Suche mit Details

\n

Gibt ein Array mit der Übereinstimmung und Erfassungsgruppen zurück. Praktisch zum Extrahieren von Daten.

\n\n
const logLine = "ERROR: 2023-10-15 14:30:00 - Server crash";\nconst logPattern = /^(ERROR|WARN|INFO): (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}) - (.+)$/;\nconst result = logPattern.exec(logLine);\n\nif (result) {\n  console.log(`Level: ${result[1]}`);\n  console.log(`Datum: ${result[2]}`);\n  console.log(`Nachricht: ${result[3]}`);\n}\n// Level: ERROR\n// Datum: 2023-10-15 14:30:00\n// Nachricht: Server crash
\n\n

2.3. match() — Suche in einem String

\n

Eine String-Methode, die ein Array von Übereinstimmungen zurückgibt. Mit dem Flag g — alle Übereinstimmungen, ohne — die erste mit Gruppen.

\n\n
const text = "Tel: +7(999)123-45-67, +7(495)765-43-21";\nconst phonePattern = /\\+7\\(\\d{3}\\)\\d{3}-\\d{2}-\\d{2}/g;\nconst phones = text.match(phonePattern);\n\nconsole.log(phones);\n// ['+7(999)123-45-67', '+7(495)765-43-21']
\n\n

2.4. replace() — Text ersetzen

\n

Ermöglicht das Ersetzen von Übereinstimmungen durch einen neuen String. Unterstützt spezielle Zeichen wie $1 für Erfassungsgruppen.

\n\n
const messyDate = "2023/10/15";\nconst cleanDate = messyDate.replace(/(\\d{4})\\/(\\d{2})\\/(\\d{2})/, "$3.$2.$1");\nconsole.log(cleanDate); // 15.10.2023\n\n                

Blogs

Buchempfehlungen