首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >较小的日期正则表达式

较小的日期正则表达式
EN

Stack Overflow用户
提问于 2010-05-28 04:19:33
回答 3查看 220关注 0票数 0

我有一个用来验证日期的正则表达式:

代码语言:javascript
运行
复制
^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$

工作得很好,但是我在asp.net正则表达式验证器中到处使用它,我想最小化它,这样我就可以减小页面大小。它使用dd/mm/yyyy格式并处理闰年。我正在寻找一种更简洁的正则表达式语句。

EN

回答 3

Stack Overflow用户

发布于 2010-05-28 04:24:30

这个怎么样:

代码语言:javascript
运行
复制
^(\d{1,2})\/(\d{1,2})\/(\d{4})$

然后,一旦你得到了数字,使用程序逻辑来验证日期是否有意义。正如您已经注意到的,在您的正则表达式中尝试这样做是疯狂的。

票数 7
EN

Stack Overflow用户

发布于 2010-05-28 04:24:56

您只需创建一个具有DateValidator方法并使用此正则表达式的类,其他所有人都可以引用该类/方法。

如果你不能创建一个新的类来包含这个验证,你能不能至少把它隐藏在一个全局字符串常量后面?

这样,如果您更改了正则表达式,您只需在1个位置更改它,而不是在1000个位置。

票数 2
EN

Stack Overflow用户

发布于 2010-05-28 04:27:22

伙计,解析和验证是有区别的。我会把这两个分开。正则表达式可以很好地将date解析为date对象。使用其他东西来确定它是否引用了一个存在的时间点,即它是否有效。

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

https://stackoverflow.com/questions/2924581

复制
相关文章

相似问题

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