常规的方法是将年月日取出,然后分别判断范围,然后就判断闰年2月的天数
可以通过new Date(string)的构造,比较年月日字符是否发生变化判断。
function CheckDate(text) {
if (!text) return false;
text = text.replace(/[//-]0?/g, "/");
if (!text.match(/^/d{4}///d{1,2}///d{1,2}$/)) return true;
var d = new Date(text);
return [d.getFullYear(), d.getMonth() + 1, d.getDate()].join("/") != text;
}
document.open();
var datas = ["", "2010-01-01", "2010/02/30", "2010/02", "2010/22/30", "2012/2/29", "2012/02/29"];
for(var i = 0; i < datas.length; i++) {
document.write(datas[i], "=", CheckDate(datas[i]), "<br/>");
}
document.close();
输出:
=false
2010-01-01=false
2010/02/30=true
2010/02=true
2010/22/30=true
2012/2/29=false
2012/02/29=false