求一个关于日期的正则。。
要能够判断2月的天数
怎么搞 请高手指点
要能够判断2月的天数
怎么搞 请高手指点
解决方案 »
- struts2里session和hibernate里的session究竟有什么区别啊?
- 求个swing的布局。。。。。。。。
- <table style="display:none"> 怎么用js让table显示出来??
- string如何转换成Writer对象
- 学习ajax.....遇到问题,在线等......
- java 文件操作中的相对路径问题
- jbuilder7打包生成的exe怎么不能运行?
- 在Java中,用Mircosoft SQL Server数据库,请问要进行日期字段的读取,用( ResultSet rs ; rs.getDate(1),其中1代表相应的字段为 DateTi
- 险过scjp
- JAVA用来做B/S数据库好吗?
- 优化此代码
- 正向代理获取真实IP
这个正则表达式有点长,是验证的日期格式是 四位年-2位月-2位日的形式
^(?!0000)[0-9]{4}-((0?[1-9]|1[0-2])-([01]?[1-9]|10|2[0-8]|(?<=-0?[13578]-|-1[02]-)31|(?<!-0?2-)(29|30))|(?<=(?<=[02468][048]|[13579][26]|(?<![02468][048]|[13579][26])00)-)0?2-29)$
注意:(?<=)向左预查需要高版本的正则表达式,非常遗憾地,如果你想用在js上,版本就不够!!!
闰年规则中,似乎百年不闰对公元1501年以前不适用,不知道是java API出错了,还是就是这样的!!!
重写了下,修正点小BUG,另外再来个兼容的,可以在js上跑:
^((?!0000)[0-9]{4}(-(0?[1-9]|1[0-2])-([01]?[1-9]|10|2[0-8])|-(0?[13-9]|1[0-2])-(29|30)|-(0?[13578]|1[02])-31)|(?!0000)([0-9]{2}(04|08|[2468][048]|[13579][26])|(0[0-9]|1[0-5]|[2468][048]|[13579][26])00)-0?2-29)$