Javascript校验日期合法性和必录性
编写代码的时候经常遇到的就是日期的校验问题,方法很多,但是找到一个比较准确的却成了程序员们比较头疼的。自己总结了一小段校验日期并且校验必录的代码分享给大家。具体校验日期合法性和必录性:
<script type="text/javascript" language="text/javascript">
function submit_button(){
if(!document.all.timestart.value){
alert("开始办理业务时间不能为空!");
document.all.timestart.focus();
return;
}
if(!document.all.timeend.value){
alert("结束办理业务时间不能为空!");
document.all.timeend.focus();
return;
}
if (!isDate(document.all.timestart.value)){
alert("请输入正确的日期格式!例如:2000-01-01!");
document.all.timestart.focus();
return false;
}
if (!isDate(document.all.timeend.value)){
alert("请输入正确的日期格式!例如:2000-01-01!");
document.all.timeend.focus();
return false;
}
}
function isDate(str){
//--- 一般输入性判断
var Strs = str.split("-");
if(Strs.length!=3){return 0;};
var AYear=Strs,AMonth=Strs,ADay=Strs;
if ((AYear.length!=4)||(AMonth.length!=2)||(ADay.length!=2)){return 0;}
if (!/^(\d)+$/.test(AYear)||!/^(\d)+$/.test(AMonth)||!/^(\d)+$/.test(ADay)){return 0;}
var tempYear,tempMonth,tempDay;
//--- 非闰年的每个月天数
var constMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
tempYear = parseInt(AYear);
if((tempYear>2100)||(tempYear<1900)){return 0;}
tempMonth = parseInt((AMonth.substring(0,1)=="0")?AMonth.substring(1,2):AMonth);
tempDay = parseInt((ADay.substring(0,1)=="0")?ADay.substring(1,2):ADay);
//--- 判断月合法性
if ((tempMonth==0)||(tempMonth>12)){return 0;}
if (tempMonth != 2){
if((tempDay > constMonth) || (tempDay ==0)){return 0;}
}else{ //--- 根据闰年判断
if((tempYear%4==0)&&(tempYear0!=0)||(tempYear@0==0)){
if((tempDay>29)||(tempDay==0)){return 0;}
}else{
if((tempDay>constMonth)||(tempDay==0)){return0;}
}
}
return 1
}
</script> 今天任务完成 嘿嘿
页:
[1]