【发布时间】:2020-06-26 14:29:47
【问题描述】:
我有这样的不同日期:
DD-MM-YY
DD.MM.YYYY
YYYY/MM/DD
但日期中的分隔符可以是破折号 - 或点 . 或正斜杠 /。
我已经尝试过有效的正则表达式,但我需要检查输入的日期是否使用像 DD-MM/YY 这样的不匹配分隔符然后它应该是无效的,因为第一个分隔符是 - 而第二个分隔符是 /。
到目前为止我的尝试:
/^\d\d?\d?\d?[-\/.]\d?\d[-\/.]\d\d?\d?\d?$/.test(userDate)
如何检查第二个分隔符是否与第一个分隔符相同?
【问题讨论】:
-
使用反向引用,例如
([./-])用于第一个分隔符,\1用于第二个分隔符。 -
您是否还希望正则表达式验证
DD是 1-31 和MM是 1-12 吗? -
@pretzelhammer 没有
-
像
2020/55/2020这样的东西会通过检查。我想说,一致的分隔符是您对当前方法最不关心的问题。 -
单独进行某种多阶段验证似乎没有意义,但可以很容易地一起完成。如果您只需要检查分隔符,
\d{2}(\d{2})?([.\-\/])\d{2}\2\d{2}(\d{2})?这样简单的方法就可以了。
标签: javascript regex string date