【提问】日期正则表达式

xupeihuagudulei 2009-12-08 10:41:46
这种格式的
2005-2-5
感谢。
...全文
115 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljs0203 2009-12-08
  • 打赏
  • 举报
回复
简单点好。 哈哈
ljs0203 2009-12-08
  • 打赏
  • 举报
回复
\d\d\d\d-\d\d-\d\d
shine333 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xupeihuagudulei 的回复:]
引用 3 楼 sggsg 的回复:
var exp = new RegExp('^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$');
瑞年也可以的
不用这么麻烦的。

[/Quote]
搞得那么复杂,结果还是错的,月日必须2位不说,
1900-02-28也可以,自己查一下到底有没有
十八道胡同 2009-12-08
  • 打赏
  • 举报
回复
网上有很多的。

这个日期正则表达式支持
YYYY-MM-DD
YYYY/MM/DD
YYYY_MM_DD
YYYY.MM.DD的形式

match : 2008-2-29 2008/02/29

not match : 2008-2-30 2007-2-29


完整的正则表达式如下:
((^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(10|12|0?[13578])([-\/\._])(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(11|0?[469])([-\/\._])(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))([-\/\._])(0?2)([-\/\._])(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([3579][26]00)([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][0][48])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][2468][048])([-\/\._])(0?2)([-\/\._])(29)$)|(^([1][89][13579][26])([-\/\._])(0?2)([-\/\._])(29)$)|(^([2-9][0-9][13579][26])([-\/\._])(0?2)([-\/\._])(29)$))
闰年的2月份有29天,因此匹配闰年日期格式为YYYY-MM-DD的正则表达式为:

(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29

最后,将平年和闰年的日期验证表达式合并,我们得到最终的验证日期格式为YYYY-MM-DD的正则表达式为:

(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)

DD/MM/YYYY格式的正则验证表达式为:

(((0[1-9]|[12][0-9]|3[01])/((0[13578]|1[02]))|((0[1-9]|[12][0-9]|30)/(0[469]|11))|(0[1-9]|[1][0-9]|2[0-8])/(02))/([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3}))|(29/02/(([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00)))



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/LCL_data/archive/2009/07/08/4332108.aspx
-过客- 2009-12-08
  • 打赏
  • 举报
回复
最宽泛的
^\d{4}-\d{1,2}-\d{1,2}$

稍严谨点的
^[12]\d{3}-([1-9]|1[0-2])-([1-9]|[12][0-9]|3[01])$
xupeihuagudulei 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ljs0203 的回复:]
你的格式应该是这样  2009-01-01 啊。  怎么还搞个2009-1-1  ?反正如果到了2009-1-11日格式就会变好

[/Quote]按照你那个我输两个数直接就不对了

比如要输12月份的
ljs0203 2009-12-08
  • 打赏
  • 举报
回复
你的格式应该是这样 2009-01-01 啊。 怎么还搞个2009-1-1 ?反正如果到了2009-1-11日格式就会变好
xupeihuagudulei 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lxcnn 的回复:]
引用 5 楼 xupeihuagudulei 的回复:
我只要这种的。
2007-5-8就行了。大家谁给一具。


问题是你要不要做闰年的验证,参考

正则应用之——日期正则表达式
[/Quote]不要润年
只要能验证输入的是这种格式就OK
-过客- 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xupeihuagudulei 的回复:]
我只要这种的。
2007-5-8就行了。大家谁给一具。
[/Quote]

问题是你要不要做闰年的验证,参考

正则应用之——日期正则表达式
xupeihuagudulei 2009-12-08
  • 打赏
  • 举报
回复
我只要这种的。
2007-5-8就行了。大家谁给一具。
xupeihuagudulei 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sggsg 的回复:]
var exp = new RegExp('^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$');
瑞年也可以的
[/Quote]不用这么麻烦的。
钱不是问题 2009-12-08
  • 打赏
  • 举报
回复
var exp = new RegExp('^(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)$');
瑞年也可以的
xupeihuagudulei 2009-12-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ljs0203 的回复:]
\d\d\d\d-\d-\d
[/Quote]这个有些不对吧
要是月份到了两位数呢?
ljs0203 2009-12-08
  • 打赏
  • 举报
回复
\d\d\d\d-\d-\d

62,264

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧