【问题标题】:Date regex dd/MM/yyy or yyyy日期正则表达式 dd/MM/yyy 或 yyyy
【发布时间】:2015-06-18 15:25:52
【问题描述】:

我有一个日期字段,它采用“dd/MM/yyy”格式或“yyyy”格式。 所以我使用了这个正则表达式:

REGEX_DATE = "^((([0]{1}[1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))"
            + "/(([0]{1}[1-9]{1})|([1]{1}[0-2]{1}))/([0-9]{4}))"
            + "|(([1]{1}([9]{1})[1-9]{1}[0-9]{1}))"
            + "|(([2]{1}([0-9]{3}))) "
            + "|^((([0]{1}[1-9]{1})|([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1}))(([0]{1}[1-9]{1})|([1]{1}[0-2]{1}))([0-9]{4}))"
            + "|^$";

但是格式为“yyyy”的日期不起作用。我的错在哪里?

谢谢!

【问题讨论】:

  • 你确实意识到{1} 是完全多余和不必要的,对吧?
  • 它对我来说很好用。是否有特定的输入不起作用?
  • 我建议使用 stackoverflow.com/questions/43802/… 而不是正则表达式。
  • 我不知道这是否是一个错字,但这是否意味着是一个 3 位数的年份? dd/MM/yyy?
  • @Chris - 您是要解析日期还是验证日期?无论哪种方式,使用内置语言而不是正则表达式可能会更好。

标签: regex


【解决方案1】:

你不能用这个吗:

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

【讨论】:

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