在开发中,经常要输入日期作为查询条件,而日期的有效验证尤为重要,特附上前端JS中的日期验证函数:
/**验证日期输入是否正确**/
function validateDateIsOK(bTimeId,eTimeId,bTxt,eTxt){
var beginDate=document.getElementById(bTimeId);
var endDate=document.getElementById(eTimeId);
var beginArray=beginDate.value.split('-');
var endArray=endDate.value.split('-');
bTxt=bTxt==''?'开始时间':bTxt;
eTxt=eTxt==''?'结束时间':eTxt;
if (beginArray!=null&&beginArray.length>0) {
for (var i = 0; i < beginArray.length; i++) {
var firstNum=parseInt(beginArray[i].replace(/^{0,\d}/g,""));
var secondNum=parseInt(endArray[i].replace(/^{0,\d}/g,""));
if (i==0&&firstNum<secondNum) {//比较年份
return true;
}else if(i>0&&firstNum<secondNum){//比较月份和天数
return true;
}else if(firstNum>secondNum){//开始时间大于结束时间
alert(eTxt+'必须大于'+bTxt);
beginDate.value='';
return false;
}else if(i==2&&firstNum==secondNum){//比较天数,如果相等
alert(eTxt+'必须大于'+bTxt);
beginDate.value='';
return false;
}
firstNum=secondNum=null;
}
}
}
/**通用校验日期方法**/
function commonCheckDate(bTimeId,eTimeId,bTxt,eTxt){
var beginDate=document.getElementById(bTimeId);
var endDate=document.getElementById(eTimeId);
bTxt=bTxt==''?'开始时间':bTxt;
eTxt=eTxt==''?'结束时间':eTxt;
if (beginDate.value!=''&&endDate.value=='') {
alert('请输入'+eTxt);
return false;
}else if (beginDate.value==''&&endDate.value!='') {
alert('请输入'+bTxt);
return false;
}else if(beginDate.value!=''&&endDate.value!=''){
return validateDateIsOK(bTimeId,eTimeId,bTxt,eTxt);
}
return true;
}