VBScript的IsDate函数用于判断一个日期是否正确,JavaScript没有这个函数,我们也来写一个类似的函数。需要说明的是,JavaScript中IsDate的参数必须为字符串,且支持6种不同的格式”yyyy-mm-dd || yyyy/mm/dd || dd-mm-yyyy || dd/mm/yyyy || mm-dd-yyyy || mm/dd/yyyy”,之所以不能使用日期作为参数是因为JavaScript根本没有不正确的日期,比如 new Date(2008,01,30),构造函数会自动将它转换成正确的日期2008-03-01。JavaScript版IsDate函数如下:
\n
function IsDate(dateval){
var arr = new Array();
if(dateval.indexOf(“-”) != -1){
arr = dateval.toString().split(“-”);
}else if(dateval.indexOf(“/”) != -1){
arr = dateval.toString().split(“/”);
}else{
return false;
}
//yyyy-mm-dd || yyyy/mm/dd
if(arr[0].length==4){
var date = new Date(arr[0],arr[1]-1,arr[2]);
if(date.getFullYear()==arr[0] && date.getMonth()==arr[1]-1 && date.getDate()==arr[2]){
return true;
}
\n
\n
}
//dd-mm-yyyy || dd/mm/yyyy
if(arr[2].length==4){
var date = new Date(arr[2],arr[1]-1,arr[0]);
if(date.getFullYear()==arr[2] && date.getMonth()==arr[1]-1 && date.getDate()==arr[0]){
return true;
}
}
//mm-dd-yyyy || mm/dd/yyyy
if(arr[2].length==4){
var date = new Date(arr[2],arr[0]-1,arr[1]);
if(date.getFullYear()==arr[2] && date.getMonth()==arr[0]-1 && date.getDate()==arr[1]){
return true;
}
}
return false;
}