【发布时间】: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