您的位置:首页 > 产品设计 > UI/UE

EasyUI的自定义验证规则,验证日期的有效性

2014-01-03 15:47 706 查看
function checkDateTime(type,datetime,split){
	var date = datetime.split(" ")[0];
	var time = datetime.split(" ")[1];
	//alert(date + '\n' + time)
	switch (type){
	   case "time"://检查时分秒的有效性
		   var tempArr = time.split(":");
		   if(parseInt(tempArr[0]) > 23){
			   return false;
		   }
		   if(parseInt(tempArr[1]) > 60 || parseInt(tempArr[2]) > 60){
			   return false;
		   }		   
			break;
		case "date"://检查日期的有效性
			var tempArr = date.split("-");	
			if(parseInt(tempArr[1]) == 0 || parseInt(tempArr[1]) > 12){//月份
				return false;
			}
			var lastday=new Date(parseInt(tempArr[0]),parseInt(tempArr[1]),0);//获取当月的最后一天日期			
			if(parseInt(tempArr[2])== 0 || parseInt(tempArr[2]) > lastday.getDate()){//当月的日
				return false;
			}			
			var myDate = new Date(parseInt(tempArr[0]),parseInt(tempArr[1])-1,parseInt(tempArr[2]));				
			if(myDate=="Invalid Date") {		
				return false;
			}
		   break;
	}
	
	return true;
}

/***
 @author ganning
 EasyUI的自定义日期验证规则
 * */
function initCuntValidateBox(){
	//自定义验证规则 名称为myDate
	$.extend($.fn.validatebox.defaults.rules, {
	   myDate: {
	validator: function (mytime, param) {       
	//标准时间格式
	var regStandard = /^\1|2\d{3}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}$/;	//匹配标准日期格式  2014-1-20 12:10:00
	//日期快速输入格式 	
	var regA =/^\1|2\d{3}-\d{1,2}-\d{1,2}-\d{1,2}-\d{1,2}-\d{1,2}$/;	//匹配日期 和 时\分\秒  2014-1-20-12-10-00 意思是2014-1-20 12:10:00
	var regB =/^\1|2\d{3}-\d{1,2}-\d{1,2}-\d{1,2}-\d{1,2}$/;	//匹配日期 和 时\分  2014-1-20-12-10-00 意思是2014-1-20 12:10
	var regC =/^\1|2\d{3}-\d{1,2}-\d{1,2}$/;	//匹配日期  2014-1-20
	var x = "";
	
	if(!regStandard.test(mytime)){
		if(regA.test(mytime)){			
			var tempArr = mytime.split('-');
			x = tempArr[0] + "-" + tempArr[1] + "-" + tempArr[2] + " " + tempArr[3] + ":" + tempArr[4] + ":" + tempArr[5];					
			/**/	
			if(!(checkDateTime("date",x) && checkDateTime("time",x))) {
				$.fn.validatebox.defaults.rules.myDate.message ="日期格式错误!";
				return false;
			}					
		}else
		if(regB.test(mytime)){			
			var tempArr = mytime.split('-');
			x = tempArr[0] + "-" + tempArr[1] + "-" + tempArr[2] + " " + tempArr[3] + ":" + tempArr[4] + ":00";
			/**/	
			if(!(checkDateTime("date",x) && checkDateTime("time",x))) {
				$.fn.validatebox.defaults.rules.myDate.message ="日期格式错误";
				return false;
			}			
		}else
		if(regC.test(mytime)){
			x = mytime + " 00:00:00";
			/**/
			if(!checkDateTime("date",x)) {
				$.fn.validatebox.defaults.rules.myDate.message ="日期格式错误";
				return false;
			}		
		}else{
			$.fn.validatebox.defaults.rules.myDate.message ="日期格式错误";
			return false;
		}
	}else{
		if(!(checkDateTime("date",mytime) && checkDateTime("time",mytime))) {
			$.fn.validatebox.defaults.rules.myDate.message ="日期格式错误";
			return false;
		}
	}
			return true;
	    },
	        message: ''
	    }
	});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: