pyosky Geschrieben 15. Juni 2004 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?
Jaraz Geschrieben 15. Juni 2004 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
computercrustie Geschrieben 15. Juni 2004 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.
Shad0wkn1ght Geschrieben 6. Januar 2010 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
MartinSt Geschrieben 6. Januar 2010 Geschrieben 6. Januar 2010 wie willst du denn per RegEx die Prüfung des 29.2. im Schaltjahr machen?
Shad0wkn1ght Geschrieben 6. Januar 2010 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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden