Reguläre Ausdrücke in TypeScript mit Beispielen: Vollständiger Leitfaden

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 TypeScript: Von der Theorie zur Praxis

\n

Reguläre Ausdrücke (RegExp) sind ein mächtiges Werkzeug zum Suchen, Ersetzen und Validieren von Zeichenketten. In TypeScript funktionieren sie genauso wie in JavaScript, fügen jedoch eine strenge Typisierung hinzu, was die Fehlersuche vereinfacht und die Zuverlässigkeit des Codes erhöht. In diesem Artikel analysieren wir die Syntax, Methoden und reale Beispiele für die Verwendung regulärer Ausdrücke in TypeScript.

\n\n

Erstellen regulärer Ausdrücke in TypeScript

\n

In TypeScript gibt es zwei Möglichkeiten, RegExp zu erstellen: literal und über den Konstruktor. Beide Varianten sind typisiert und geben ein Objekt vom Typ RegExp zurück.

\n\n

Literale Syntax

\n

Der einfachste und am häufigsten verwendete Weg ist, das Muster in Schrägstriche zu setzen. Flags werden nach dem zweiten Schrägstrich angegeben.

\n
// Suche nach dem Wort "hello" ohne Berücksichtigung der Groß-/Kleinschreibung\nconst pattern: RegExp = /hello/i;\nconsole.log(pattern.test('Hello World')); // true
\n\n

RegExp-Konstruktor

\n

Der Konstruktor ist praktisch, wenn das Muster dynamisch erstellt wird. Das erste Argument ist eine Zeichenkette mit dem Muster, das zweite sind die Flags.

\n
const searchTerm: string = 'TypeScript';\nconst dynamicPattern: RegExp = new RegExp(searchTerm, 'gi');\nconsole.log('I love TypeScript and TypeScript is great'.match(dynamicPattern));\n// ['TypeScript', 'TypeScript']
\n\n

Grundlegende RegExp-Methoden in TypeScript

\n

TypeScript erbt alle JavaScript-Methoden für die Arbeit mit regulären Ausdrücken. Betrachten wir die gängigsten.

\n\n

test() — Vorhandensein prüfen

\n

Die Methode test() gibt true oder false zurück. Nützlich für die Formularvalidierung.

\n
const emailRegex: RegExp = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\nconst email: string = 'user@example.com';\nconsole.log(emailRegex.test(email)); // true
\n\n

exec() — detaillierte Suche

\n

exec() gibt ein Array mit der Übereinstimmung, dem Index und den Gruppen zurück. Wenn keine Übereinstimmung gefunden wird — null.

\n
const datePattern: RegExp = /(\\d{2})\\.(\\d{2})\\.(\\d{4})/;\nconst result: RegExpExecArray | null = datePattern.exec('Heute ist der 15.03.2025');\nif (result) {\n  console.log(`Tag: ${result[1]}, Monat: ${result[2]}, Jahr: ${result[3]}`);\n  // Tag: 15, Monat: 03, Jahr: 2025\n}
\n\n

match() und matchAll() für Zeichenketten

\n

Die Methode match() wird bei einer Zeichenkette aufgerufen und akzeptiert ein RegExp. Für die globale Suche aller Übereinstimmungen verwenden Sie matchAll().

\n
const text: string = 'Code 123, Code 456, Code 789';\nconst numbers: RegExpMatchArray | null = text.match(/\\d+/g);\nconsole.log(numbers); // ['123', '456', '789']\n\n// matchAll() gibt einen Iterator zurück\nconst matches: IterableIterator<RegExpMatchArray> = text.matchAll(/(\\d+)/g);\nfor (const match of matches) {\n  console.log(`Gefundene Zahl: ${match[1]}`);\n}
\n\n

Praktische Beispiele für reguläre Ausdrücke in TypeScript

\n

Wenden wir nun die Theorie auf reale Aufgaben an. Alle Beispiele sind unter Berücksichtigung der strengen Typisierung von TypeScript geschrieben.

\n\n

Beispiel 1: Validierung einer E-Mail-Adresse

\n

Erstellen wir eine Funktion, die die Korrektheit einer E-Mail überprüft. Wir verwenden einen typisierten regulären Ausdruck.

\n
function isValidEmail(email: string): boolean {\n  const emailRegex: RegExp = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n  return emailRegex.test(email);\n}\n\nconsole.log(isValidEmail('test@mail.ru'));   // true\nconsole.log(isValidEmail('invalid-email'));  // false
\n\n

Beispiel 2: Zahlen aus einer Zeichenkette extrahieren

\n

Oft müssen alle Zahlen aus einem Text extrahiert werden. Wir verwenden die globale Suche mit dem Flag g.

\n
function extractNumbers(text: string): number[] {\n  const numberPattern: RegExp = /\\d+/g;\n  const matches: RegExpMatchArray | null = text.match(numberPattern);\n  return matches ? matches.map(Number) : [];\n}\n\nconst result: number[] = extractNumbers('Preis: 2500 Rubel, Rabatt 300 Rubel');\nconsole.log(result); // [2500, 300]
\n\

Blogs

Buchempfehlungen