Die Aufgabe
3) Reguläre Ausdrücke mit JavaScript (12 Punkte)
Mit Hilfe eines regulären Ausdrucks soll überprüft werden, ob es sich bei einer eingelesenen Benutzereingabe um ein Datum handelt. Ein Datum soll zur Vereinfachung als gültig betrachtet werden, wenn folgende Bedingungen eingehalten sind:
- die Tage liegen zwischen 1 und 31
- Monate liegen zwischen 1 und 12
- das Jahr ist vierstellig
- Tage und Monate können ein- oder zweistellig eingegeben werden.
Z.B. 01.07.2023, aber auch 1.7.2023
a) Ergänzen Sie check() so, dass im Fehlerfall eine alert-Meldung ausgegeben wird – und im Erfolgsfall auf die Folgeseite weitergeleitet wird. (Der Rahmencode steht rechts.)
b) Um auch historische Daten zu verwalten soll es nun auch noch optional möglich sein, hinter dem Datum einen Text AD oder BC anzugeben. Was muss dazu in dem Programm aus Teil a) geändert werden?
Ein regulärer Ausdruck beschreibt ein Muster für Text: welche Zeichen an welcher Stelle stehen dürfen und wie oft. JavaScript prüft mit exp.test(wert), ob ein Text zum Muster passt; das Ergebnis ist true oder false.
Gültig ist hier ein Tag von 1 bis 31, ein Punkt, ein Monat von 1 bis 12, ein Punkt und ein vierstelliges Jahr. Tag und Monat dürfen eine führende Null haben. Ob es den 31. Februar gibt, prüft das Muster nicht; die Aufgabe sagt „zur Vereinfachung“.
Gesucht sind in a) die Lücken in check(), in b) die Änderung für AD und BC. Die Aufgabe gibt 12 Punkte, davon 3 für b).
^ und endet mit $. Sonst reicht es, wenn irgendein Teil der Eingabe passt.- Wie Formular und check() zusammenspielen.
- Den Wert aus dem Eingabefeld lesen.
- Den Ausdruck bauen: Tag, Monat, Jahr.
- Fehlerfall und Erfolgsfall.
- Mit Beispielen testen.
- Teil b): AD oder BC als optionalen Zusatz.