studyklar
IProg · Skript 2 · Abschnitt 9

Reguläre Ausdrücke in JavaScript

Ein regulärer Ausdruck allein tut noch nichts. Erst die Methoden von JavaScript prüfen, suchen, ersetzen und zerlegen damit Text. Rechts wächst ein kleines Programm, eine Methode je Schritt, mit seiner Ausgabe darunter. Mit Weiter geht es Schritt für Schritt voran. Ein Klick auf einen Schritt springt direkt dorthin.

Worum es geht

Skript 02, Folien 37–39: reguläre Ausdrücke in JavaScript, Strings und reguläre Ausdrücke.

Wie schreibt man einen regulären Ausdruck in JavaScript hin? Und mit welcher Methode bekommt man welche Antwort: nur ja oder nein, die Stelle, den gefundenen Text, alle Treffer?

Aus Skript 02, Folien 30–36: Ein regulärer Ausdruck ist ein Muster für Text: Zeichenklassen wie [0-9], Metazeichen wie \d (Ziffer) und \s (Leerraum), Quantoren wie + (einmal oder öfter), Anker ^ und $, Gruppen in runden Klammern.

So gehen wir vor:

  1. Einen Ausdruck anlegen: mit Schrägstrichen oder aus einem String.
  2. Prüfen mit test, Modifikator i, Stelle suchen mit search.
  3. Treffer holen mit match und exec, mit und ohne g.
  4. Text ändern mit replace, zerlegen mit split.
  5. Eine Klausurfrage selbst lösen.

Zwischen zwei Schrägstrichen

let mail = /.+@.+/;

In JavaScript steht ein regulärer Ausdruck zwischen zwei Schrägstrichen, ohne Anführungszeichen. Das ist die kürzeste Form. Die Folie nimmt das Muster .+@.+: mindestens ein Zeichen, ein @, mindestens ein Zeichen. Das ist eine sehr grobe Prüfung auf eine E-Mail-Adresse.

Die Variable mail hält jetzt ein Objekt vom Typ RegExp. Ausgegeben wird noch nichts.

Aus einem String: new RegExp

let mail2 = new RegExp(".+@.+");let ziffer = new RegExp("\\d");console.log(ziffer.source);
\d

Die zweite Form baut den Ausdruck aus einem String: new RegExp(…). Das braucht man, wenn das Muster erst beim Ausführen feststeht, etwa aus einer Eingabe. Zeile 2 ergibt denselben Ausdruck wie Zeile 1.

Vorsicht beim Backslash: Im String ist \ selbst ein Sonderzeichen. Damit im Muster \d ankommt, schreibt man im String "\\d". Die Ausgabe von source (dem Muster als Text) zeigt: Angekommen ist \d. Mit nur einem Backslash bliebe ein bloßes d übrig.

Noch 11 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1

(noch kein Programm)
LegendeHier wächst gleich ein kleines Programm, Abschnitt für Abschnitt, mit seiner Ausgabe.