pyosky Geschrieben 15. Juni 2004 Teilen Geschrieben 15. Juni 2004 hallo, hab gerade angefangen mit wegen einer datumsprüfung mit regex auseinander zu setzten. gibts ne möglichkeit auf wertebereich abzuprüfen? das beste was ich bis jetzt geschafft hab war: [0-3][0-9]\\.?[0-1][0-9]\\.?[0-9]{2,4} nur ist hier das problem das z.b. der 39.19.2004 auch geht. also kann ich ein normales datum mit einem einzigen regulärem ausdruck prüfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 15. Juni 2004 Teilen Geschrieben 15. Juni 2004 Warum? Versuch doch einfach den String in ein Datum zu parsen und falls eine Exception auftritt, ist das Datum falsch. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
computercrustie Geschrieben 15. Juni 2004 Teilen Geschrieben 15. Juni 2004 Da muss ich Jaraz Recht geben, das wäre auf jeden Fall die bessere Variante, da so auch gleich die Gültigkeit des Datums geprüft wird (30.02.03 ist zum Beispiel ungültig). Aber trotzdem der Regex dazu (für preg-Funktionen von PHP, ist also PERL-Kompatibel) /((?:0(?!0)|1|2|3)(?<!3)[0-9]|3[0-1])\.((?:0(?!0)|1)(?<!1)[0-9]|1[0-2])\.((?:[0-9]{4})|(?:[0-9]{2}))/ Hier wird geprüft, ob die Zahl vor dem Punkt zwischen 01 und 31 liegt, die Zahl zwischen dem Punkt zwischen 01 und 12 und die Jahreszahl 2 oder 4 Stellen hat (bei drei Stellen werden nur die ersten beiden zurückgegeben). Für Tag, Monat und Jahr werden auch Backreferences erzeugt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Shad0wkn1ght Geschrieben 6. Januar 2010 Teilen Geschrieben 6. Januar 2010 Hallo zusammen, Also die RegEx ist wirklich gut jedoch hat sie einen Fehler. Wenn ich Tages bzw. Datumswerte eingebe wie z.B. 1 oder 5 also jene die nicht mit 0 anfangen trifft diese RegEx nicht zu. Da ich mich lange nicht mehr mit RegEx beschäftigt habe bitte ich um eine kurze Hilfe Stellung. MFG Shadow Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 6. Januar 2010 Teilen Geschrieben 6. Januar 2010 wie willst du denn per RegEx die Prüfung des 29.2. im Schaltjahr machen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Shad0wkn1ght Geschrieben 6. Januar 2010 Teilen Geschrieben 6. Januar 2010 Nein Nein ich meinte nur, dass Datumswerte wie z.B. 1.5.2009 nicht gültig sind da diese Reg Ex eine 0 voraussetzt also 01.05.2009. Habe sie aber soweit abgeändert, dass es funktioniert. Bezogen auf Schaltjahr ist es klar, dass die Abfrage gesondert behandelt werden muss. Die Schaltjahr Problematik habe ich aber bereits gelöst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.