我有一个 javascript 函数可以进行一些日期验证。
var regex = new RegExp(my regex expression is here);
var result = regex.test(valueToTest);
但是,在过去的几个小时里,我一直在追赶我的尾巴,因为测试总是返回错误。
This does not work
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)\d\d$
This does not work
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)\d{2}$
This works
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/(19|20)[0-9]{2}$
3 种模式之间的唯一区别是最后 2 位数字。所有看起来都完全有效,但只有第三个返回 true。
我试图了解我是否做错了什么,或者浏览器(Firefox)是否有任何问题。
有任何想法吗?