我需要 JavaScript 中的正则表达式来测试以下格式的日期:
- yyyy-MM-dd(示例:2014-12-31)
- dd.MM.yyyy(示例:2014 年 12 月 31 日)
- dd.MM.yy(示例:2014 年 12 月 31 日)
- ddMMyyyy(示例:12312014)
- ddMMyy(示例:123114)
- dd.M.yy(示例:2014 年 6 月 12 日)
- dd.M.yyyy(示例:2014 年 6 月 12 日)
抱歉,但我对正则表达式真的很糟糕。这对于专业人士来说可能是轻而易举的事情。一百万谢谢。
最佳答案
您的第一个模式与其他模式差异太大,无法进行有意义的合并。所以:\d{4}-\d\d-\d\d
对于其他人,您允许使用可选的 .
作为分隔符,以及两位数或四位数的年份。所以你有: \d\d(\.?)\d\d?\1\d\d(?:\d\d)?
上面的 \1
基本上是重复 (\.?)
的结果 - 即。如果之前有一个点,则添加一个点,如果没有,则什么也不存在。
结果:
/^(?:\d{4}-\d\d-\d\d|\d\d(\.?)\d\d?\1\d\d(?:\d\d)?)$/
关于javascript - Javascript 中的正则表达式用于测试各种日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24166399/