形式:yyyy-MM-dd HH:mm:ss
连字符可以有:-/. 空格 (没有的情况暂时不考虑,其实是应该考虑的)
年份
范围:1 - 9999
需要排除0000等前置0的情况(只要前面有0,就不会匹配)
正则:((?!0{1,4})[0-9]{1,4})
月份
范围:01 - 12 or 1 - 12
需要排除0 / 00 or 超过12的情况
正则:(0(?:[1-9])|1(?:[0-2])|[1-9])
说明:如果是0,后面必须是1-9
如果是1,后面必须是0-2
然后就是1-9的情况
日
范围:01 - 31 or 1 - 31
【暂时先不考虑,统一按照28天计算】
不严格考虑日期正则:(0(?:[1-9])|[1-2][0-9]|3[0-1])
但是:其实按照严格来计算的话,还需要根据月份去判断,具体的某一个月有多少天,其实,还要根据年份去判断闰年 -> 二月份具体有多少天
【严格考虑月份去确定每月多少天】
有31天的:1 3 5 7 8 10 12
有30天的:4 6 9 11
2月:闰年29天,平年28天
-
所有的月份都有28天:
((0(?:[1-9])|1(