Title |
Test
Find
Matches dates incl. February leap/common years
|
Expression |
^\s*((31([-/ ])((0?[13578])|(1[02]))\3(\d\d)?\d\d)|((([012]?[1-9])|([123]0))([-/ ])((0?[13-9])|(1[0-2]))\12(\d\d)?\d\d)|(((2[0-8])|(1[0-9])|(0?[1-9]))([-/ ])0?2\22(\d\d)?\d\d)|(29([-/ ])0?2\25(((\d\d)?(([2468][048])|([13579][26])|(0[48])))|((([02468][048])|([13579][26]))00))))\s*$ |
Description |
This .NET regular expression matches all valid dates in dd/MM/yyyy , dd-MM-yyyy or dd MM yyyy formats between 1/1/0000 and 31/12/9999 with the leading zero for the day and month portions being optional. The century for the year is optional for all dates except for the 29th of February of century years divisible by 400. This expression also validates the 29th of February for leap years, defined as (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0). |
Matches |
29-2-2000 | 31/12/9999 | 1 1 0000 | 29/02/0000 | 8/3/9841 |
Non-Matches |
29/2/1900 | 29/02/2001 | 31/04/2000 | 28/02-1934 | 1/13/1978 |
Author |
Rating:
Lewis TF Choo Man
|
Source |
Myself |
Your Rating |
|