Javascript 使用正则表达式进行日期验证
我正在尝试构建一个正则表达式来检查日期是否为以下格式(11-2-07、1-25-2007或01/25/2007)。我的正则表达式如下所示:Javascript 使用正则表达式进行日期验证,javascript,regex,Javascript,Regex,我正在尝试构建一个正则表达式来检查日期是否为以下格式(11-2-07、1-25-2007或01/25/2007)。我的正则表达式如下所示: /^([\d{2}\d{1}])([\-\/])([\d{2}\d{1}])(\-\/)([\d{2}\d{4}])$/ 当我以所需格式在日期中输入日期时,方法test()实际上返回false。你能帮我找出错误吗 您可以使用\d{1,2}选择1或2个数字 最后一个催眠/正斜杠组中缺少方括号 最后一组应该是(\d{2}|\d{4}) 无需在字符类内转义正斜杠
/^([\d{2}\d{1}])([\-\/])([\d{2}\d{1}])(\-\/)([\d{2}\d{4}])$/
当我以所需格式在日期中输入日期时,方法test()实际上返回false。你能帮我找出错误吗
\d{1,2}
选择1或2个数字(\d{2}|\d{4})
/^(\d{1,2})([\-/])(\d{1,2})([\-/])(\d{2}|\d{4})$/
var re = /^([0123]?[\d])([\-\/])([0123]?[\d])([\-\/])((19|20)?\d\d)$/;
0
、1
、2
或3
开始。如果您知道确切的日期格式,您可以从月份组中删除3
,或者对月份组使用(0?[1-9]| 1[012])
,对日组使用(0?[1-9]|[12][0-9]| 3[01])
19
或20
开始的年份var re=/^([0123]?[\d])([\-\/])([0123]?[\d])([\-\/])((19 | 20)?\d\d)$;
控制台日志('01-02-1999',重新测试('01-02-1999');
控制台日志('01/02/1999',重新测试('01/02/1999');
控制台日志('41-02-1999',重新测试('41-02-1999');
控制台日志('01/42/1999',重新测试('01/42/1999')
[\d{2}\d{1}]
和[\d{2}\d{4}]
只匹配一个字符,您的意思是使用(a | b)
?另外,您的第一个有效日期示例并没有提供足够的信息来了解日-月顺序您考虑过使用moment.js吗?有一个isValid()函数。简单的方法是:忘记使用正则表达式,直接使用它。如果你想构建正则表达式-用这个方法来尝试它们,你可以构建你的正则表达式,并在运行时进行测试