首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Regex:匹配有效日期但具有最小和最大日期的表达式

Regex:匹配有效日期但具有最小和最大日期的表达式
EN

Stack Overflow用户
提问于 2011-12-17 23:02:01
回答 3查看 2.1K关注 0票数 0

我发现下面这段代码可以验证dd/MM/YYYY中的日期:

代码语言:javascript
运行
复制
^(((((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]))))$

如何设置最小/最大日期?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-18 00:20:14

编程语言(如javaC#python等)具有date/time/datetime类型。

如果您提供有效的参数,则可以通过构造函数创建date

如果不是,它将生成可以捕获的exception (通常是try...catch语句)。

使用regex很难验证29/2/201229/2/2013

但是在date类型的语言的帮助下,这很容易。

代码语言:javascript
运行
复制
$ 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
票数 1
EN

Stack Overflow用户

发布于 2011-12-17 23:40:19

如果您使用该插件,至少从格式的角度来看,您知道您将拥有一个有效的日期。然后,JavaScript的工作就是解析日期并确定所有规则。

function不完整,因此如果有人添加了此here :请按更新按钮并将链接放在此处。如果它更完整,我会更新这篇文章。

我无法想象在RegEx中对日期进行真正的验证。

票数 0
EN

Stack Overflow用户

发布于 2011-12-17 23:40:21

为了比较日期,你也可以使用date.js

HTH

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8545582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档