This question already has answers here:
Javascript date regex DD/MM/YYYY

(12个答案)


4年前关闭。




是否可以在JavaScript中使用正则表达式来验证多种格式的日期,例如DD-MM-YYYY或DD.MM.YYYY或DD/MM/YYYY等?我需要所有这些都放在一个正则表达式中,但我对此并不满意。到目前为止,我已经提出了:DD-MM-YYYY的var dateReg = /^\d{2}-\d{2}-\d{4}$/;。我只需要验证日期格式,而不需要验证日期本身。

最佳答案

您可以使用字符类([./-]),以便分隔符可以是任何已定义的字符

var dateReg = /^\d{2}[./-]\d{2}[./-]\d{4}$/

或者更好的方法是,匹配第一个分隔符的字符类,然后将其捕获为组([./-]),并使用对捕获的组\1的引用来匹配第二个分隔符,这将确保两个分隔符都相同:
var dateReg = /^\d{2}([./-])\d{2}\1\d{4}$/

"22-03-1981".match(dateReg) // matches
"22.03-1981".match(dateReg) // does not match
"22.03.1981".match(dateReg) // matches

09-20 07:57