Datum mit Javascript überprüfen

Da ich mich gerade etwas mit JavaScript am herumschlagen bin, gibts mal wieder etwas aus dieser Ecke. Für eine kleine Applikation im Geschäft brauchte ich eine Funktion, welche überprüft, ob das Datum in einem Textfeld korrekt ist. Mit Regular Expressions geht das bis zu einem gewissen Grad, überprüfen ob das Datum aber wirklich gültig ist geht damit allerdings nicht. Stichwort Schaltjahr.

Mit dem JavaScript Objekt date kann man das Datum aber sehr genau überprüfen. Die folgende Funktion überprüft, ob das Datum im Textfeld das Format ddmmyy hat und ob es gültig ist.
Aufrufen kann man die Funktion zum Beispiel so:
<input type="text" name="datum" onBlur="checkdate(this)" />

Und hier die Funktion.
function checkdate(object)
{
    // wert auslesen
    value=object.value;

    // regexp zur grobpruefung des datums
    var reg=new RegExp("^([0-3]{1})([0-9]{1})([0-1]{1})([0-9]{1})([0-2]{1})([0-9]{1})$","g");

    // wenn das regexp nicht matcht 
    if(!value.match(reg))
    {
        return false;
    }
    
    // datum in tag, monat und jahr zerlegen
    var day=value.substr(0,2);
    var month=value.substr(2,2)-1;
    var year=value.substr(4,2);

    // datums objekt erstellen
    date=new Date(year,month,day);

    // jahr ueberprufen
    if(year!=date.getYear())
    {
        return false;
    }

    // monat ueberpruefen
    if(month!=date.getMonth())
    {
        return false;
    }

    // tag ueberpruefen
    if(day!=date.getDate())
    {
        return false;
    }

    return true;
}

Kommentare

Jonas 05.02.09 18:37
Gravatar von Jonas Hallo David,
also ist das Datum auch Ok wenn value.match(reg) == false ist?
david 05.02.09 22:37
Gravatar von david Ohh.. ähm ja, das macht natürlich wenig Sinn.
Ich habe das Script noch etwas angepasst, so sollte es stimmen.

Danke für den Hinweis.

Kommentieren

Name:
Mail:
Homepage:
10+8=? (Spamschutz)