Korrektheit eingegebener Daten prüfen

mit Javascript

<script>
  function pruefe() {
    var benutzername = document.getElementById("benutzername");
    if (benutzername.value.match(/^[A-Za-z]\w{4,19}$/) == null) alert("unzulässiger Benutzername");
    // entsprechend weitere Prüfungen
  }
</script>

<form>
  Benutzername         <input type = "text" id="benutzername"><br>
  Kennwort             <input type = "text" id="kennwort"><br>
  Kennwortwiederholung <input type = "text" id="kennwort2"><br>
  E-Mail               <input type = "text" id="email"><br>
  AGB                  <input type = "checkbox" id = "agb"><br>
  <input type = "submit" onClick = "pruefe()";><br>
</form>

Das wird dann so aussehen:

Es soll sicher gestellt sein, dass
Eine Fehlermeldung erfolgt also, wenn
der Benutzername mit einem Buchstaben beginnt und aus mindestens 5 und höchstens 20 Zeichen besteht (also mindestens 4 und höchstens 19 weiteren).
benutzername.value.match(/^[A-Za-z]\w{4,19}$/) == null
das Kennwort mindestens 6 Zeichen hat.
kennwort.value.length < 6
das Kennwort mindestens ein Sonderzeichen enthält. ('_' zählt zu den Wortzeichen)
kennwort.value.replace(/\w/g,"") == "")
Kennwort und Kennwortwiederholung identisch sind.
die E-Mail-Adresse syntaktisch korrekt ist.
email.value.match(/^[_a-zA-Z0-9-]+\.[_a-zA-Z0-9-]+*@[a-zA-Z0-9-]+\.+[a-zA-Z]{2,3}$/) == null
die AGB angekreuzt ist.
!agb.checked

Aufgabe

  1. Erstelle die Webseite.
  2. Ergänze das Skript pruefe um die weiteren Bedingungen.
  3. Ergänze das Formular um ein Eingabefeld für ein Geburtsjahr. Eine Fehlermeldung soll erscheinen, wenn das Geburtsjahr unglaubwürdig klein oder groß ist.
  4. Der Geburtstag soll in der Form dd.mm.jjjj (z.B. 24.12.2011) eingegeben und die Eingabe geprüft werden.

Hier werden das form-Element und die input-Elemente nicht durch id="...", sondern durch name="..." benannt. Das ist bei Form-Elementen üblich, weil beim Absenden Name und Wert an den Server geschickt werden.
Die Elemente werden in Javascript direkt mit ihrem Namen angesprochen, wobei man vom Dokument ausgehend der Verschachtelung folgt; etwa: document.formular.benutzer