2013-02-01 51 views

回答

1

试试这个规律expression-

^(((((0[1-9])|(1\d)|(2[0-8]))-((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))-((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))$ 

Here

+0

感谢答案... 它可以100% –

+0

不要忘记将其标记为正确答案。它可以帮助别人...... –

0

可以的JavaScript检查闰年for more info

isLeap = new Date(year, 1, 29).getMonth() == 1 

正则表达式

^(?:^(?:(?:(?:(?:(?:0?[13578]|1[02])/31)|(?:(?:0?[13-9]|1[0-2])/(?:29|30)))/(?:1[6-9]|[2-9]\d)\d{2})|(?:0?2/29/(?:(?:(?:1[6-9]|[2-9]\d)(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))/(?:0?[1-9]|1\d|2[0-8])/(?:(?:1[6-9]|[2-9]\d)\d{2}))$)$ 

这些允许但不要求在单位数月/天内的前导零。如果你不想这样做,请替换0的所有实例?以0

+0

感谢答案,但需要的是使用Validator唯一.. –

+0

用正则表达式解析日期为可能,但令人沮丧。很难得到正确的结果,非正则表达式向导难以理解这个表达式(这意味着很难证明这个事情是正确的),并且与其他选项相比,它很慢。 – Amol

+0

请参阅[this](http:// stackoverflow。COM /问题/ 4290433 /正则表达式换aspregularexpressionvalidator-与格式-MMDDYY跨越式Y),如果你没有任何选项 – Amol

1

明白了此正则表达式还处理闰年:

^(((0 [1-9] | [12] \ d | 3 [01])/(0 [13578] | 1 [02])/((19 | [2-9] \ d)\ d {2}))|((0 [1 -9] | [12] \ d | 30)/(0 [13456789] | 1 [012])/((19 | [2-9] \ d)\ d {2}))|((0 [1 -9] | 1 \ d | 2 [0-8])/ 02 /((19 | [2-9] \ d)\ d {2}))|(29/02 /((1 [6-9 ] | [2-9] \ d)(0 [48] | [2468] [048] | [13579] [26])|((16 | [2468] [048] | [3579] [26])0 0))))$

匹配
[29/02/2000],[30/04/2003],[01/01/2003]

非匹配
[29/02/2001],[30-04-2003],[1899年1月1日]

您还可以检查此链接了:http://www.codeproject.com/KB/aspnet/LengthValidation.aspx

0

你可以使用一个CustomValidator并具有客户端验证是简单,并在服务器端使用DateTime.TryParse来获得一个确定的val idation。虽然我怀疑你不需要你的代码一直工作到9999年(不,我不能立即看到提供的正则表达式是否在未来的工作中)。

2

试试这个。这个对我有用!

ValidationExpression="(^((((0[1-9])|([1-2][0-9])|(3[0-1]))|([1-9]))-(((0[1-9])|(1[0-2]))|([1-9]))-(([0-9]{2})|(((19)|([2]([0]{1})))([0-9]{2}))))$)" 
+0

只回答为我工作,尝试了其他人,没有工作,ty! – Alex

0

从微软DN但修饰年都20XX和19XX合作,作为DOB

^(((((0[1-9])|(1\d)|(2[0-8]))/((0[1-9])|(1[0-2])))|((31-((0[13578])|(1[02])))|((29|30)-((0[1,3-9])|(1[0-2])))))/((((20[0-9][0-9]))|(29-02-20(([02468][048])|([13579][26]))))|(((19[0-9][0-9]))|(29-02-19(([02468][048])|([13579][26]))))))$