校验 日期/时间 的正则表达式

前端之家收集整理的这篇文章主要介绍了校验 日期/时间 的正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

其实日期/时间的校验比较通用的一个方法(在java中)是给定一个pattern,parse一下(jdk中的日期类或者jodaTime都可以),如果不抛出Exception就是正确的格式. 否则是错误格式. 正则校验的话,要想写出比较严格的正则校验日期是比较困难的,因为每个月不同的天数/闰年这个事情就很麻烦. 以下是个示例:

日期时间格式,如2014-01-01 12:12:32的校验:

^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$

日期格式,如2014-01-01的校验:

^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))$

主要是日期部分比较复杂,其实也可以剥离出时间部分进行时间校验.这个正则考虑了闰年/月份不同的问题.

原文链接:https://www.f2er.com/regex/358835.html

猜你在找的正则表达式相关文章