-3

我想检查必须dd-mm-yyyy使用正则表达式格式的日期,它还必须检查闰年日期。

RegularExpressionValidator用来检查日期。

4

7 回答 7

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}))))$)"
于 2013-10-29T18:18:23.663 回答
1

试试这个正则表达式 -

^(((((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]))))$

从这里得到它

于 2013-02-01T06:54:06.473 回答
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])00))))$

比赛
[29/02/2000]、[30/04/2003]、[01/01/2003]

不匹配
[29/02/2001]、[30-04-2003]、[1/1/1899]

您也可以查看此链接: http: //www.codeproject.com/KB/aspnet/LengthValidation.aspx

于 2013-05-29T18:29:10.543 回答
0

您可以使用javascript检查闰年以获取更多信息

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。

于 2013-02-01T06:40:05.353 回答
0

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

于 2013-05-29T19:32:19.347 回答
0

来自 Microsoft 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]))))))$
于 2017-01-11T18:05:27.400 回答
-1

对于 dd/MM/yyyy 甲酸盐

(((0|1)[0-9]|2[0-9]|3[0-1])\/(0[1-9]|1[0-2])\/((19|20)\d\d))$
于 2018-12-31T14:07:01.273 回答