用正则表达式做日期判断出错?
在月份或日前面加0则出错:
另:为什么d.getMonth()+1而不是d.getMonth()
================================
function dateCheck(str){
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4]);
var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()
return newStr==str
}
alert(dateCheck("2002/01/31"))
alert(dateCheck("2002-01-31"))
alert(dateCheck("2002-02-31"))
alert(dateCheck("2002-01-41"))