javascript - 正则表达式帮助 : add 24-hour to expression

标签 javascript c# asp.net regex

我有一个正则表达式,我需要将 24 小时时间格式添加到:

^(((((0[13578])|([13578])|(1[02]))[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9])|(3[01])))|((([469])|(11))[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9])|(30)))|((02|2)[\-\/\s]?((0[1-9])|([1-9])|([1-2][0-9]))))[\-\/\s]?\d{4})(\s(((0[1-9])|([1-9])|(1[0-2]))\:([0-5][0-9])((\s)|(\:([0-5][0-9])\s))([AM|PM|am|pm]{2,2})))?$

我将如何添加 24 小时时间格式。

最佳答案

TLDR:别用正则表达式搞砸了!


时间部分:

/(?:[01]\d|2[0-3]):[0-5]\d/

日期部分的基本尝试:

/(?:0[1-9]|1[0-2])\/(?:0[1-9]|[12]\d|3[01])\/\d{4,}/

日期部分的更高级尝试(正确验证,二月除外):

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[2469]|11)\/(?:0[1-9]|[12]\d|30))\/\d{4,}/

更进一步,假设每一年都是闰年:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|[12]\d))\/\d{4,}/

4 整除:

/\d*(?:[13579][26]|[02468][048])(?!\d)/

不能被 100 整除或不能被 400 整除:

/\d*(?:(?!\d{2}00)|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)/

是闰年:

/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)/

仅有效的二月日期:

/02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d)))\/\d{4,}/

有效日期:

/(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d))))\/\d{4,}/


现在一切都集中在一个地方!

日期和时间:

/^(?:(?:0[13578]|1[02])\/(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)\/(?:0[1-9]|[12]\d|30)|02\/(?:0[1-9]|1\d|2[0-8]|29(?=\/\d*(?:(?:(?!\d{2}00)(?=\d{2}(?:[13579][26]|[02468][048])))|(?=(?:[13579][26]|[02468][048])00))\d{4}(?!\d))))\/\d{4,} (?:[01]\d|2[0-3]):[0-5]\d$/


这可以简化吗?绝对是!

我会做吗?不!

我认为信息很明确 - 不要这样做!

关于javascript - 正则表达式帮助 : add 24-hour to expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054644/

相关文章:

c# - Entity Framework .. 部分构造函数

asp.net - 将 visual studio 2015 中的 asp.net 5 发布到 linux

asp.net - 在四个解决方案中调试一个网站

javascript - 如何在不使用 !important 的情况下覆盖 primefaces 组件内联样式?

javascript - 如何将 json 发布到 backbone.js 中的 api 方法?

c# - 尝试执行 Microsoft Band 示例代码时出错

c# - 获取 DataGridView 中选定行的单元格内容

javascript - 将 Node Passport.js 用于多个网站

javascript - JSON 返回未定义

c# - TreeView 验证