如何在javascript中验证单个日期?

如何在javascript中验证单个日期?,javascript,Javascript,我的要求如下。有人能建议如何验证下面给定的日期吗 有效日期: 1/1/2017 01/1/2017 1/01/2017 2017年1月1日 无效日期: 13/12/2017 13/13/2017 12/35/2017 2017年13月13日 函数validateDate(dateStr){ 常量regExp=/^(\d\d?\/(\d\d?\/(\d{4})$/; 让matches=dateStr.match(regExp); 让isValid=matches; 设maxDate=[0,31,2

我的要求如下。有人能建议如何验证下面给定的日期吗

有效日期: 1/1/2017 01/1/2017 1/01/2017 2017年1月1日

无效日期: 13/12/2017 13/13/2017 12/35/2017 2017年13月13日
函数validateDate(dateStr){
常量regExp=/^(\d\d?\/(\d\d?\/(\d{4})$/;
让matches=dateStr.match(regExp);
让isValid=matches;
设maxDate=[0,31,29,31,30,31,30,31,30,31,31,31];
如果(匹配){
const month=parseInt(匹配[1]);
const date=parseInt(匹配[2]);
const year=parseInt(匹配[3]);
isValid=第0个月;
isValid&=日期0;
常量闰年=(年份%400==0)
||(年份%4==0和年份%100!=0);

isValid&=month!=2 | | leapYear | | date你能推荐一个正则表达式吗?为什么你需要一个正则表达式来验证它。当你有日期函数来验证它时。regex不是验证日期的正确工具!它不适用于
13/12/2017
我已经更新了include my tests。13/13/2017对JS有效,如天和月包装。我不认为这是海报想要的。@jhpratt是的,这是我在第一篇文章中指出的comment@alfasin我的测试失败了,所以我更新了答案。