JS判断输入日期的正确性

 1<script language="javascript">   
 2function strDateTime(str){   
 3var reg = /^(\\\d{1,4})(-|\\\/)(\\\d{1,2})\\\2(\\\d{1,2})$/;   
 4var r = str.match(reg);   
 5if(r==null)return false;   
 6var d= new Date(r[1], r[3]-1,r[4]);   
 7var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()   
 8return newStr==str   
 9}   
10alert(strDateTime("2002-1-31"))   
11alert(strDateTime("2002-1-41"))   
12</script>
 1<script language="javascript">   
 2function strDateTime(str){   
 3var reg = /^(\\\d{1,4})(-|\\\/)(\\\d{1,2})\\\2(\\\d{1,2}) (\\\d{1,2}):(\\\d{1,2}):(\\\d{1,2})$/;   
 4var r = str.match(reg);   
 5if(r==null)return false;   
 6var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);   
 7var newStr=d.getFullYear()+r[2]+(d.getMonth()+1)+r[2]+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()   
 8return newStr==str   
 9}   
10alert(strDateTime("2002-1-31 12:34:56"))   
11alert(strDateTime("2001-2-29 12:54:56"))   
12alert(strDateTime("2002-1-41 12:00:00"))   
13</script>
 1<script language="javascript">   
 2var s="2002-4-16"   
 3alert(chkDate(s));   
 4function chkDate(sDate){   
 5var r=/\\\d{4}(?:-\\\d{1,2}){0,2}/   
 6//正则表达式,判断是否为yyyy-mm-dd,yyyy-mm,yyyy格式   
 7if(sDate.match(r)==sDate){   
 8var arr=sDate.split("-")   
 9switch(arr.length){   
10//根据不同的yyyy-mm-dd,yyyy-mm格式判断年月日数字是否正确   
11case 3:   
12var tmpDate=new Date(arr[0],arr[1],arr[2]);   
13if(tmpDate.getMonth()==arr[1] && tmpDate.getFullYear()==arr[0]) return true;   
14break;   
15case 2:   
16if(arr[1]<13) return true;   
17break;   
18default:   
19return false;   
20}   
21}   
22return false;   
23}   
24</script>

/*
时间有效性判断函数
All by happywinds
*/
function verifyDate(textObj) {
var str=textObj.value;
textObj.value = textObj.value.replace(/\\s+/g,"");
if(str.search(/^\\d{4}-\\d{1,2}-\\d{1,2}$/) == 0){
var y = parseInt(str.split("-")[0]);
var m = parseInt(str.split("-")[1]);
var d = parseInt(str.split("-")[2]);
switch(m){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d>31){
return false;
textObj.focus();
textObj.select();
}else{
return true;
}
break;
case 2:
if((y%4==0 && d>29) || ((y%4!=0 && d>28))){
return false;
textObj.focus();
textObj.select();
}else{
return true;
}
break;
case 4:
case 6:
case 9:
case 11:
if(d>30){
return false;
textObj.focus();
textObj.select();
}else{
return true;
}
break;
default:
return false;
textObj.focus();
textObj.select();
}
}else{
return false;
textObj.focus();
textObj.select();
}
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus