【问题标题】:Regex pattern needed for this example: 99999999/99 DD/MM/YYYY此示例所需的正则表达式模式:99999999/99 DD/MM/YYYY
【发布时间】:2018-04-19 22:18:07
【问题描述】:

带空格的前 10 位数字工作正常,但我的日期正则表达式失败。

^(\d{6}\s{2}|\d{8})\/(\d{1}\s|\d{2})\s\/(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$

【问题讨论】:

  • 这个输入是什么,你在看正则表达式唯一的解决方案吗?
  • 您的日期正则表达式似乎太复杂了。有明显更简单的方法可以做到这一点,请进行一些研究。
  • 这是一个讨厌的怪物正则表达式。
  • 谢谢大家,我尝试了使用 react-input-mask 的其他方法,但没有运气。早些时候尝试过 ^(\d{6}\s{2}|\d{8})/(\d{1}\s|\d{2})\s\d{2}/\d{2 }/\d{4}$ 现在我只需要在日期正则表达式中添加上述内容。
  • 但是您还没有告诉我们您要验证什么以及验收标准是什么?

标签: javascript regex reactjs input-mask


【解决方案1】:

有一个解决方案但是 2 月必须是 28/29 天,除此之外所有其他人都在工作,请查看模式

^([0-9]{6}|[0-9]{8})([\s]{2}|[\s]{0})[/]{1}[0-9 ]{2}[\s]{1}(0[0-9]|[0-2]|1[0-2])[/]{1}([0-9]|[0-2] [0-9]|3[0-1])[/]{1}[0-9]{4}$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 2020-04-09
    • 2023-04-07
    相关资源
    最近更新 更多