【问题标题】:Regex for Date DD-MM-YYYY日期 DD-MM-YYYY 的正则表达式
【发布时间】:2012-06-08 08:50:39
【问题描述】:

我有以下表达式,它将用作 HTML5“模式”属性中的日期验证。

?:0[1-9]|1[0-9]|2[0-9])|(?:(?!02)(?:0[1-9]|1[0-2])-(?:30))|(?:(?:0[13578]|1[02])-31))-(?:(?:0[1-9]|1[0-2])-(?:19|20)[0-9]{2}

我希望它只允许有效日期,使用“-”作为分隔符。 如果是闰年,这意味着最多 2 月 29 日,其他月份则分别为 30/31。

目前,它只允许从 2(2012 年)开始的年份和最多 12 个月(12 月)的月份。 但无论哪个月,它都将日期限制为 29。

谁能帮我解决?

【问题讨论】:

  • 这就是全部吗?您的括号似乎不平衡或完全丢失。
  • 是的,很抱歉。我一定花了太多时间写它,并且在将它发布在这里时将它留在了错误的阶段。不管现在,我有一个可行的答案! =)

标签: regex html


【解决方案1】:

^(((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))))$

【讨论】:

  • 谢谢!那效果很好。一个小问题是你放了 /'s 而不是 -'s。
【解决方案2】:

我被链接到另一个用于使用正则表达式进行验证的好资源。 This 链接为许多不同的日期格式提供“最终”日期验证器,并允许所有分隔符。

【讨论】:

    猜你喜欢
    • 2017-07-10
    • 2022-01-04
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多