js日付が有効かどうかを検証する方法
直接コードを貼って、話をしています.
var end_time=$('#id_end_time').val();
if(end_time==''){
alert(' !');
return false;
}else{
var matchArray=end_time.match(/^([0-9]{4})-([0-1][0-9])-([0-3][0-9])$/);
if(matchArray==null){
alert("Invalid date: " + end_time);
return false;
}else{
if(!isdate(matchArray[1],matchArray[2],matchArray[3])){
alert("Invalid date: " + end_time);
return false;
}
}
}
function isdate(intYear,intMonth,intDay){
if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) return false;
if(intMonth>12||intMonth<1) return false;
if ( intDay<1||intDay>31)return false;
if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30)) return false;
if(intMonth==2){
if(intDay>29) return false;
if((((intYear%100==0)&&(intYear%400!=0))||(intYear%4!=0))&&(intDay>28))return false;
}
return true;
}
の最初の行が値を取得し、空かどうかを判断します.これは誰もが知っているはずです.次にフォーマット2013-04-17に合致するかどうかを判断し、ここでは正規表現を使用します.最後の関数isdateは合法的な日付かどうかを判断し、この関数はネット上で検索されます.