首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求一日期的正则表达式,该怎么解决

2012-01-16 
求一日期的正则表达式如:如果输入2007-1-9或者2007-01-09或者yyyy-mm-dd这三种格式都可以.这样的功能,能不

求一日期的正则表达式
如:如果输入2007-1-9   或者   2007-01-09   或者   yyyy-mm-dd这三种格式都可以.
这样的功能,能不能用一个正则表达式来实现.

[解决办法]
YYYY-MM-DD

^(?:(?:(?:(?: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]))$
[解决办法]
http://topic.csdn.net/t/20060222/16/4571000.html
符合
[解决办法]
^\d{4}\-(([1-9])|((0[1-9])|(1[0-2])))\-(([1-9])|(([0[1-9])|(3[0-1])|([1-2]\d)))$

没有判断2月28,29。
[解决办法]
^(((1[6-9]|[2-9]\d)(([02468][048])|([13579][26]))(-)?((((0?[13578])|(1[02]))(-)?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))(-)?((0?[1-9])|([1-2][0-9])|(30)))|(0?2(-)?((0?[1-9])|([1-2][0-9])))))|((1[6-9]|[2-9]\d)(([02468][1235679])|([13579][01345789]))(-)?((((0?[13578])|(1[02]))(-)?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))(-)?((0?[1-9])|([1-2][0-9])|(30)))|(0?2(-)?((0?[1-9])|(1[0-9])|(2[0-8]))))))$

用这个试下,测试满足你的要求,并带闰年判断,年份为1600-9999,如对年份或是连接符“-”有要求,稍加改进即可

热点排行