javascript - 日期格式 'dd-M-y'的正则表达式是什么

标签 javascript asp.net regex

'01-Aug-12'这样的日期格式的正则表达式是什么。

我在 ASP.NET 应用程序中具有 dd-M-y 日期格式,并希望通过 asp.net 正则表达式验证器控件对其进行验证。

最佳答案

一个非常基本的格式检查是:

\d{2}-[A-Za-z]{3}-\d{2} 

亲自看看here .

为了实际验证,我们需要像 @Brijesh Gandhi 建议的那样进行一天检查,然后添加一个完整的月份列表,如下所示:

([12]\d|0[1-9]|3[0-1])-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{2}

如果您想允许像 aug 这样的小写月份,您可以添加不区分大小写修饰符 ?i:,如下所示...

([12]\d|0[1-9]|3[0-1])-(?i:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{2}

...但这也将允许一个月,例如aUg - 只允许第一个字符为大写或小写可能是最正确的。

([12]\d|0[1-9]|3[0-1])-([Jj]an|[Ff]eb|[Mn]ar|[Aa]pr|[Mm]ay|[Jj]un|[Jj]ul|[Aa]ug|[Ss]ep|[Oo]ct|[Nn]ov|[Dd]ec)-\d{2}

查看实际的最终版本 here .

请注意,这仍然不会检测到无效日期,例如 2012 年 2 月 30 日。 不接受这些特殊日期的正则表达式将非常长/丑陋。即使使用 Javascript 的 Date.parse(...)/new Date(...) 也无济于事,因为它很乐意接受上述不存在的日期,并返回 3 月 1 日。因此,为了 100% 正确,您需要自己进行复杂的编码,或者使用像 datejs 这样的库。 .

编辑 1:稍微缩短了 @Brijesh Gandhi 的日期检查,更新了 Regexr 链接。

编辑2:评论正确性。

关于javascript - 日期格式 'dd-M-y'的正则表达式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108332/

相关文章:

javascript - 我想让第二个按钮单击事件仅在第一个按钮单击事件起作用后才起作用

javascript - 中继器设置行的背景并在客户端取消选择上一个

asp.net - T-SQL 中的 HTML 编码?

c# - Web 应用程序中的动态业务规则

javascript - 查找和替换 JavaScript

javascript - 我什么时候应该在 redux-saga 中使用 yield* 与 yield?

javascript - React 无法获取数组的长度

javascript - Chart.js 控制网格线之间的空间/大小

javascript - 匹配数字代码的正则表达式(数字、星号和锐号)

php - 计算开始的空格