d.getMonth是0-11,所以需要+1<script>
function dateCheck(str){
var reg = /^(\d{1,4})(-|\/)(0?)(\d{1,2})\2(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[4]-1,r[5]);
var newStr=d.getFullYear()+r[2]+r[3]+(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"))
</script>
function dateCheck(str){
var reg = /^(\d{1,4})(-|\/)(0?)(\d{1,2})\2(\d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[4]-1,r[5]);
var newStr=d.getFullYear()+r[2]+r[3]+(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"))
</script>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货