判断日期的正则表达试

Indicator 2008-02-22 05:04:15
以下这个正则在判断日期:YYY-MM-DD HH:SS这种格式一直都没问题,但是就是不能识别闰年2月份的29号
如:2008-2-29 10:10就不能被识别。
var pattern = /^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d$/;

请高手帮我修改下。
...全文
484 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
春天的气息 2008-02-22
  • 打赏
  • 举报
回复
呵呵!
harryheart 2008-02-22
  • 打赏
  • 举报
回复
看着头就大了...终于知道自己丢一大段正则给别人是什么感觉了,哈哈哈哈
sesea 2008-02-22
  • 打赏
  • 举报
回复
日期 2006-12-4 YYYY/MM/DD YYYY_MM_DD YYYY.MM.DD
/((^((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)$))/

from pagevalidator
「已注销」 2008-02-22
  • 打赏
  • 举报
回复
var reg=/^(?:(?:(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/)(?:0?2\1(?:29)))|(?:(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/)(?:(?:(?:0?[13578]|1[02])\2(?:31))|(?:(?:0?[1,3-9]|1[0-2])\2(29|30))|(?:(?:0?[1-9])|(?:1[0-2]))\2(?:0?[1-9]|1\d|2[0-8]))))$/;

非常完美的,放心用吧。
vrhero 2008-02-22
  • 打赏
  • 举报
回复
将正则改成DateTime.TryParse不过几行代码...下虎背?比下楼梯都容易...
paulin 2008-02-22
  • 打赏
  • 举报
回复
..建议从虎背下来
Indicator 2008-02-22
  • 打赏
  • 举报
回复
艾,已经骑虎难下了
conan304 2008-02-22
  • 打赏
  • 举报
回复
判断日期就不要用正则了
lake_cx 2008-02-22
  • 打赏
  • 举报
回复
既然是日期时间,为什么不DateTime.TryParse一下算了呢?

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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