日期格式的验证

说明:传入String类型日期,例2012-04-13或2012/04/13,验证通过返回true,否则返回false

 

var isDateFormat = function(_datestr){
   var dateStr = _datestr.match(/^(\d{4})-(\d{2})-(\d{2})$/);
    var   intYear; 
    var   intMonth; 
    var   intDay; 
    var   boolLeapYear; 
    if(dateStr != null){
 	    intYear =  parseInt(dateStr[0],10);
        intMonth = parseInt(dateStr[2],10); 
        intDay = parseInt(dateStr[3],10);
 	    if(dateStr.length == 4){
	 	    if(!(intMonth > 12) && !(intMonth < 1)){
		 	    if(intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12){
			 	    if(intDay>=1&&intDay<=31){
			 	    	return true;
			 	    } else {
			 	    	return false;
			 	    }
		 	    } else {
		 	        if(intMonth==4||intMonth==6||intMonth==9||intMonth==11){
			 	        if(intDay>=1 && intDay<=30){
			 	        	return true;
			 	        } else {
			 	        	return false;
			 	        }
		 	        } else {
		 	            if(intMonth==2){
				 	        if(intDay < 1){
				 	        	return false;
				 	        } else {
					 	        var boolLeapYear = false;
					 	        if(intYear%4 == 0 && intYear%100 != 0){
					 	        	boolLeapYear = true;
					 	        }
					 	        if(boolLeapYear){
						 	        if(intDay > 29){
						 	        	return false;
						 	        } else {
						 	        	return true;
						 	        }
					 	        } else {
					 	        	if(intDay > 28){
					 	        		return false;
					 	        	} else {
					 	        		return true;
					 	        	}
					 	        }
				 	        }
		 	            }
		 	        }
		 	    }
	 	    }
 	    }else {
 	    	return	false;
        }
    } else {
    	return	false;
    }
};

 

posted @ 2012-04-13 15:11  潁川君  阅读(222)  评论(0编辑  收藏  举报