Aufgaben vom 9.6.2004 (Woche 15)

Bearbeitungszeit: Die Aufgaben sollten innerhalb des Unterrichts zu bewältigen sein.

Aufgabe 1: Reguläre Ausdrücke

Wenn Sie den Inhalt von Eingabefelderm auf seine Gültigkeit hin überprüfen wollen, genügt eine Abfrage der Art if (eingabe != "") in der Regel nicht. Um z.B. zu testen, ob eine E-Mail-Adresse gültig ist, müssen Sie testen, ob die Adresse mit einer Zeichenkette aus Buchstaben, Ziffern, Bindestrichen oder Underscores (_) beginnt (wobei der Bindestrich nicht am Anfang stehen darf), ein @ enthält und dahinter noch mindestens zwei Zeichenketten aus Buchstaben, Ziffern, Bindestrichen und Underscores (wieder ohne Bindestrich am Anfang) besteht, die durch einen Punkt verbunden sind. Ein Name oder Vorname enthält keine Ziffern, eine Postleitzahl besteht nur aus Ziffern (4 oder 5) und eine Telefonnummer hat wieder andere Regeln.

Natürlich kann man solche Überprüfungen Zeichen für Zeichen mit selbst geschriebenen Programmen durchführen. Dies ist jedoch sehr aufwändig, mühsam und fehlerträchtig. Es hat sich daher eine Beschreibungssprache für Zeichenketten entwickelt, mit welcher man Muster von Zeichenketten definieren kann. Man spricht in diesem Zusammenhang von regulären Ausdrücken. Mit Hilfe von Funktionen kann man testen, ob eine Zeichenkette einem bestimmten regulären Ausdruck entspricht. Es ist auch möglich, Teile einer Zeichenkette mit Hilfe von regulären Ausdrücken zu definieren und zu extrahieren.

Reguläre Ausdrücke (kurz Regexp's für regular expressions) wurden als erstes in die Programmiersprache Perl aufgenommen. Sowohl JavaScript als auch PHP unterstützen Perl-kompatible reguläre Ausdrücke. Später wurden reguläre Ausdrücke von POSIX standardisiert und erweitert. PHP unterstützt auch POSIX-kompatible reguläre Ausdrücke, ebenso wie Java (aber nicht JavaScript). Wir beschränken uns auf Perl-kompatible reguläre Ausdrücke.

Sowohl in der SELFHTML-Anleitung wie auch im PHP-Handbuch werden reguläre Ausdrücke beschrieben. Als kleine Zusatzhilfe enthält diese Seite unten die Möglichkeit, eine Zeichenkette und einen regulären Ausdruck einzugeben, und zu testen, ob die Zeichenkette auf den regulären Ausdruck passt.

Ihre Aufgabe

Schreiben Sie ein Formular, in dem ein Benutzer Angaben über sich selbst machen muss (eine Möglichkeit besteht auf darin, dass Sie Ihr Gästebuch verwenden und dort weitere Eingaben, z.B. für E-Mail, Alter usw. einfügen). Wenn das Formular abgeschickt wird, soll zunächst ein JavaScript-Programm gestartet werden, welches die Formulardaten überprüft und das Formular nur dann abschickt, wenn die Überprüfung erfolgreich war (andernfalls soll es nur eine Fehlermeldung über einen Alert ausgeben). Geben Sie dann dem Benutzer die Möglichkeit, das Formular auch abzuschicken, ohne die Überprüfung durchzuführen. Die abgeschickte Seite soll in diesem Fall jedoch an ein PHP-Programm weitergeleitet werden, welches seinerseits die Überprüfung vornimmt. Programmieren Sie dann das gleiche auch noch in PHP!

Der Regexp-Evaluator

Text:
RegExp (ohne /   /):

Beachten

Aufgabe 2: Arbeit am Projekt

Nehmen Sie die Arbeit an Ihrem Projekt auf!

Valid XHTML 1.1! Valid CSS!