Gunnar Bittersmann: Regular Expression für ein Datum

Beitrag lesen

Hello out there!

Wäre auch zu schön gewesen ohne Fehler. So sollte’s passen:

-?\d*(?:(?:(?:(?:[02468][048]|[13579][26])(?:[02468][048]|[13579][26])|(?:[02468][^048]|[13579][^26])(?:0[48]|[2468][048]|[13579][26]))[-./]?02[-./]?(?:0[1-9]|[12]\d)|(?:(?:[02468][^048]|[13579][^26])00|\d\d(?:[02468][^048]|[13579][^26]))[-./]?02[-./]?(?:0[1-9]|1\d|2[0-8]))|\d{4}[-./]?(?:(?:0[13578]|1[02])[-./]?(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)[-./]?(?:0[1-9]|[12]\d|30)))

Eine '2' war zu viel (trotz Vorschau):

(?:0[1-9] | 12\d | 2[0-8])               # 01 bis 28

^ die hier muss weg

See ya up the road,
Ingunnarid

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)