我发现下面这段代码可以验证dd/MM/YYYY中的日期:
^(((((0[1-9])|(1\d)|(2[0-8]))\/((0[1-9])|(1[0-2])))|((31\/((0[13578])|(1[02])))|((29|30)\/((0[1,3-9])|(1[0-2])))))\/((20[0-9][0-9])|(19[0-9][0-9])))|((29\/02\/(19|20)(([02468][048])|([13579][26]))))$如何设置最小/最大日期?
发布于 2011-12-18 00:20:14
编程语言(如java、C#、python等)具有date/time/datetime类型。
如果您提供有效的参数,则可以通过构造函数创建date。
如果不是,它将生成可以捕获的exception (通常是try...catch语句)。
使用regex很难验证29/2/2012和29/2/2013。
但是在date类型的语言的帮助下,这很容易。
$ python
>>> import time
>>> time.strptime('29/2/2012', '%d/%m/%Y')
time.struct_time(tm_year=2012, tm_mon=2, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=60, tm_isdst=-1)
>>> time.strptime('29/2/2013', '%d/%m/%Y')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/_strptime.py", line 482, in _strptime_time
tt = _strptime(data_string, format)[0]
File "/usr/lib/python3.2/_strptime.py", line 459, in _strptime
datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month发布于 2011-12-17 23:40:19
如果您使用该插件,至少从格式的角度来看,您知道您将拥有一个有效的日期。然后,JavaScript的工作就是解析日期并确定所有规则。
此function不完整,因此如果有人添加了此here :请按更新按钮并将链接放在此处。如果它更完整,我会更新这篇文章。
我无法想象在RegEx中对日期进行真正的验证。
发布于 2011-12-17 23:40:21
为了比较日期,你也可以使用date.js。
HTH
https://stackoverflow.com/questions/8545582
复制相似问题