Reguläre Ausdrücke in JavaScript mit Beispielen: in der Praxis
Reguläre Ausdrücke (RegExp) sind ein mächtiges Werkzeug zum Suchen, Ersetzen und Überprüfen von Zeichenketten. In JavaScript und Node.js werden sie überall eingesetzt: von der Formularvalidierung bis zum Parsen von Logs. In diesem Artikel behandeln wir die Grundlagen der Syntax, beliebte Methoden und lösen einige praktische Aufgaben.
1. Erstellen eines regulären Ausdrucks
In JavaScript gibt es zwei Möglichkeiten, einen regulären Ausdruck zu erstellen:
- Literal-Schreibweise (empfohlen):
/pattern/flags - Konstruktor
new RegExp('pattern', 'flags')
Beispiel:
// Literal-Schreibweiseconst regexLiteral = /hello/i;
// Konstruktor (nützlich, wenn das Muster dynamisch ist)const pattern = 'hello';const regexConstructor = new RegExp(pattern, 'i');
console.log(regexLiteral.test('Hello World')); // trueconsole.log(regexConstructor.test('HELLO')); // true2. Wichtige Methoden von RegExp und String
Für die Arbeit mit regulären Ausdrücken in JavaScript werden zwei Arten von Methoden verwendet: Methoden des RegExp-Objekts selbst und Methoden von Zeichenketten.
2.1 Methode test()
Prüft, ob eine Übereinstimmung in der Zeichenkette vorhanden ist. Gibt true oder false zurück.
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;console.log(emailRegex.test('user@example.com')); // trueconsole.log(emailRegex.test('invalid-email')); // false2.2 Methode exec()
Sucht nach einer Übereinstimmung und gibt ein Array mit detaillierten Informationen zurück (oder null). Nützlich zum Extrahieren von Daten.
const str = 'Preis: 1500 Rubel, Rabatt: 200 Rubel';const priceRegex = /(\\d+)/g;let match;
while ((match = priceRegex.exec(str)) !== null) { console.log(`Zahl gefunden: ${match[1]}`);}// Ausgabe:// Zahl gefunden: 1500// Zahl gefunden: 2002.3 String-Methode match()
Funktioniert ähnlich wie exec(), wird aber von der Zeichenkette aufgerufen.
const text = 'JavaScript ist cool! JS wird überall verwendet.';const result = text.match(/JS/g);console.log(result); // [ 'JS', 'JS' ]2.4 String-Methode replace()
Ersetzt gefundene Übereinstimmungen durch die angegebene Zeichenkette oder das Ergebnis einer Funktion.
const phone = '+7 (123) 456-78-90';const cleaned = phone.replace(/[\\s\\-\\(\\)\\+]/g, '');console.log(cleaned); // 71234567890
// Ersetzung mit Hilfe von capturing groupsconst date = '2024-03-15';const formatted = date.replace(/(\\d{4})-(\\d{2})-(\\d{2})/, '$3.$2.$1');console.log(formatted); // 15.03.20242.5 String-Methode search()
Gibt den Index der ersten Übereinstimmung oder -1 zurück.
const sentence = 'Lernen Sie JavaScript auf PythonLib';const index = sentence.search(/javascript/i);console.log(index); // 63. Flags und Sonderzeichen: praktische Beispiele
Flags ändern das Suchverhalten. Die beliebtesten:
g— globale Suche (sucht nach allen Übereinstimmungen, nicht nur der ersten).i— Groß-/Kleinschreibung ignorieren.m— Mehrzeilenmodus (Anker^und$funktionieren in jeder Zeile).
Beispiel mit Flag m:
const multiLineText = `Erste Zeilezweite ZeileDritte Zeile`;
// Ohne Flag mconsole.log(multiLineText.match(/^zweite/)); // null
// Mit Flag mconsole.log(multiLineText.match(/^zweite/m)); // [ 'zweite' ]