Title |
Test
Find
Pattern Title
|
Expression |
^[0,1]?\d{1}\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$ |
Description |
This expression checks the validity of a date (US, but it is easily editable for other format's). Year's 1990-9999, Month's 1 or 01 to 12, Day's 1 or 01 to 31. Still needs to have individual months added (i.e., Feb's 28 days), and some how to check for leap year...the months issue should not be to hard, but the leap year seems like a real chore. Please let me know if you have any suggestions for leap year.
|
Matches |
01/01/1990 | 12/12/9999 | 3/28/2001 |
Non-Matches |
3-8-01 | 13/32/1001 | 03/32/1989 |
Author |
Rating:
Scott Watermasysk
|
Source |
|
Your Rating |
|
Title: Modification
Name: Black Cloud
Date: 4/19/2012 5:26:24 PM
Comment:
Hey I tried to modify your regex a little bit.
It doesn't take 13 or 0 as month, but it still takes 0 in date field :(
^(([1][0-2])|([0]?[1-9]{1}))\/(([0-2]?\d{1})|([3][0,1]{1}))\/(([1]{1}[9]{1}[9]{1}\d{1})|([2-9]{1}\d{3}))$
Title: Lets through invalid months and days
Name: Jeff Adams
Date: 8/25/2009 2:09:26 PM
Comment:
matches 0/0/1990, 19/0/1990
Title: Lets through invalid months and days
Name: Jeff Adams
Date: 8/25/2009 2:08:32 PM
Comment:
matches 0/0/1990, 19/0/1990
Title: Scotts Date in German format (dd.mm.yyyy) and allowing only up to 31.12.2999
Name: Chris
Date: 4/22/2009 6:49:06 AM
Comment:
^(([0-2]?\d{1})|([3][0,1]{1}))\.[0,1]?\d{1}\.(([1]{1}[9]{1}[9]{1}\d{1})|([2]{1}\d{3}))$
Title: Regular Expression for Checking Date
Name: Syed Abdul Haq (from Pakistan)
Date: 2/14/2007 7:44:57 AM
Comment:
'This is VB .Net Function.Although Date format is different 'but you an see how it works....
'Checks the Date Format through Regular Expressions.
'Checks for the leap year,Length of Months also
'Input Date Format : YY/MM/DD (77/07/28)
Function CheckDateByRegExp(ByVal strDate As String) As Boolean
Dim leapYearFormat As String = "([02468][048]|[13579][26])"
Dim LeapYearFebFormat As String = "(02(0[1-9]|1[0-9]|2[0-9]))"
Dim nonLeapYearFormat As String = "\d{2}"
Dim NonLeapYearFebFormat As String = "([0][2]([0][1-9]|[1][0-9]|[2][0-8]))"
Dim MonthsOf31DaysFormat As String = "(((0[1|3|5|7|8])|(1[02]))((0[1-9])|([12][0-9])|(3[01])))"
Dim MonthsOf30DaysFormat As String = "((([0][4|6|9])|([1][1]))(([0][1-9])|([1-2][0-9])|([3][0])))"
Dim nonLeapYearMonthsFormat As String = NonLeapYearFebFormat & "|" & "(" & MonthsOf30DaysFormat & "|" & MonthsOf31DaysFormat & ")"
Dim leapYearMonthsFormat As String = LeapYearFebFormat & "|" & "(" & MonthsOf30DaysFormat & "|" & MonthsOf31DaysFormat & ")"
Dim Dateformat As String = "^((" & leapYearFormat & "(" & leapYearMonthsFormat & "))|" & "(" & nonLeapYearFormat & "(" & nonLeapYearMonthsFormat & ")))$"
If Regex.Match(strDate, Dateformat).Success Then
MsgBox("True:Correct Date!!!")
Return True
Else
MsgBox("False:Wrong Date!!!")
Return False
End If
End Function