Reguläre Ausdrücke (in JavaScript)
Dauer: 20 Minuten
- Reguläre Ausdrücke können Textmuster überprüfen
- Reguläre Ausdrücke gibt es in fast allen Programmiersprachen
Ziel: Textstrukturen mit regulären Ausdrücken erkennen
In der Programmierung kommt es häufig vor, dass Text (d.h. Strings) auf bestimmte Strukturen oder Muster überprüft werden muss. Denkbar sind verschiedene Situationen:
- Text darf nur Buchstaben des lateinischen Alphabets und/oder Ziffern enthalten
- E-Mail-Adressen haben ein bestimmtes Format
- Passwörter bestimmter Länge sollen aus Ziffern, Sonderzeichen und aus Groß- und Kleinschreibung bestehen
- usw.
Anstatt einen String mit komplexen
if
-Anweisungen auf ein bestimmtes Muster
zu testen, ist es oft praktischer, sogenannte
reguläre Ausdrücke (regular expressions)
zu verwenden.
Reguläre Ausdrücke haben eine eigene Grammatik und sind ein Konzept, das unabhängig von einer Programmiersprache existiert. JavaScript hat wie einige andere Sprachen eine fest integrierte Unterstützung für reguläre Ausdrücke.
Wir betrachten hier nur ein paar Beispiele für reguläre Ausdrücke in JavaScript, um einen ersten Eindruck zu geben.
In JavaScript wird ein regulärer Ausdruck zwischen Schrägstrichen definiert:
/ regulärer Ausdruck /;
Folgender regulärer Ausdruck beschreibt Text, der mindestens eine Ziffer enthält:
const oneDigit = /[0-9]/;
Reguläre Ausdrücke haben eine Funktion test()
,
mit der Strings überprüft werden können, ob sie
zum regulären Ausdruck passen. test()
liefert
true
für passende Strings und ansonsten false
:
const oneDigit = /[0-9]/;
oneDigit.test('keine Ziffer...'); // false
oneDigit.test('Eine Ziffer 1'); // true
Der reguläre Ausdruck [0-9]
bedeutet hier,
dass ein passender String mindestens eine Ziffer
zwischen 0
und 9
enthalten muss.
Reguläre Ausdrücke bieten viele Möglichkeiten, passende Muster für Textwerte zu definieren. Ein weiteres Beispiel eines regulären Ausdrucks, der zu Strings passt, die nur aus Buchstaben von A-Z in Groß- und Kleinschreibung und Ziffern bestehen:
const onlyCharsAndDigits = /^[A-Za-z0-9]+$/;
// passende Strings
onlyCharsAndDigits.test('111'); // true
onlyCharsAndDigits.test('passt'); // true
onlyCharsAndDigits.test('Hallo123passt'); // true
// Strings die nicht passen
onlyCharsAndDigits.test('passt nicht!'); // false
onlyCharsAndDigits.test('Hallo123passt nicht '); // false
Kommen im String Leerzeichen oder Sonderzeichen vor, dann passt der String also nicht zu diesem regulären Ausdruck.
Erklärung von /^[A-Za-z0-9]+$/
:
^
⟶ Anfang des Strings[ ]
beschreibt passende Zeichengruppen (character class/set)[A-Za-z0-9]
⟶ kleine oder große Buchstaben oder Ziffern+
⟶ ein oder mehrere Zeichen des links vor dem+
stehenden Musters (hier ein character set in[ ]
)$
⟶ Ende des Strings
Reguläre Ausdrücke stellen ein vielseitiges und ausdruckstarkes Konzept dar. Zum Erlernen und Ausprobieren sind die u.a. Links hilfreich.