⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 validateutil.js

📁 利用jxl和jdom到报表用的,可以自定义excel模板
💻 JS
📖 第 1 页 / 共 3 页
字号:
	switch(idcard.length) {
		case 15:
			//大陆15位身份证号码地区检验
			if(area[parseInt(idcard.substr(0,2))]==null) {
				alert("【"+message+"】的地址码不是国家规定的,请您检查后再输入!");
 				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false;
			}
			//大陆15位身份证号码上的年月日和出生日期检测
			var yearDate = objValue2.substr(2,2);
			var monthDate = objValue2.substr(5,2);
			var dayDate = objValue2.substr(8,2);
			var yearID = idcard.substr(6,2);
			var monthID = idcard.substr(8,2);
			var dayID = idcard.substr(10,2);
			if(yearDate!=yearID || monthDate!=monthID || dayDate!=dayID) {
				alert("【"+message+"】和【出生日期】不匹配,请您检查后再输入!");
 				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false;
			}
			//大陆15位身份证号码检测
			if ( (parseInt(idcard.substr(6,2))+1900) % 4 == 0 || ((parseInt(idcard.substr(6,2))+1900) % 100 == 0 && (parseInt(idcard.substr(6,2))+1900) % 4 == 0 )){
				//大陆15位身份证号码 闰年出生日期的合法性正则表达式
				ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
			} else {
				//大陆15位身份证号码 平年出生日期的合法性正则表达式
				ereg=/^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
			}
			//测试大陆15位身份证号码出生日期的合法性
			if(ereg.test(idcard)) {
				return true;
			} 
			else {
				alert("【身份证号码】中的出生日期超出范围或者含有非法字符,请您检查后再输入!");
 				document.getElementById(objID).focus();
				document.getElementById(objID).select();	
				return false;
			} 
			break;
		case 18:
			//大陆18位身份证号码地区检验
			if(area[parseInt(idcard.substr(0,2))]==null) {
				alert("【"+message+"】的地址码不是国家规定的,请您检查后再输入!");
 				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false;
			}
			//大陆18位身份证号码上的年月日和出生日期检测
			var yearDate2 = objValue2.substr(0,4);
			var monthDate2 = objValue2.substr(5,2);
			var dayDate2 = objValue2.substr(8,2);
			var yearID2 = idcard.substr(6,4);
			var monthID2 = idcard.substr(10,2);
			var dayID2 = idcard.substr(12,2);
			if(yearDate2!=yearID2 || monthDate2!=monthID2 || dayDate2!=dayID2) {
				alert("【"+message+"】和【出生日期】不匹配,请您检查后再输入!");
 				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false;
			}
			//大陆18位身份证号码检测
			if ( parseInt(idcard.substr(6,4)) % 4 == 0 || (parseInt(idcard.substr(6,4)) % 100 == 0 && parseInt(idcard.substr(6,4))%4 == 0 )){
				//大陆18位身份证号码 闰年出生日期的合法性正则表达式
				ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;
			} else {
				//大陆18位身份证号码 平年出生日期的合法性正则表达式
				ereg=/^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;
			}
			//测试大陆18位身份证号码出生日期的合法性
			if(ereg.test(idcard)){
				//计算校验位
				S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
						+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
							+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
								+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
									+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
										+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
											+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
												+ parseInt(idcard_array[7]) * 1 
													+ parseInt(idcard_array[8]) * 6
														+ parseInt(idcard_array[9]) * 3 ;
				Y = S % 11;
				M = "F";
				JYM = "10X98765432";
				M = JYM.substr(Y,1);//判断18位身份证号码的校验位
				if(M == idcard_array[17]) 
					return true;
				else {
					alert("【身份证号码】中的第18位校验码不正确,请您检查后再输入!");
 					document.getElementById(objID).focus();
					document.getElementById(objID).select();	
					return false;
				} 
			}
			else {
				alert("【身份证号码】中的出生日期超出范围或者含有非法字符,请您检查后再输入!");
 				document.getElementById(objID).focus();
				document.getElementById(objID).select();	
				return false;
			}	
			break;
		case 10:
			return true;
			break;
		default:
			alert("【身份证号码】的位数不正确,【大陆身份证】为15位或18位,【台湾身份证】为10位,【香港身份证】包括两个间括号也为10位,请您检查后再输入!");
 			document.getElementById(objID).focus();
			document.getElementById(objID).select();	
			return false;
			break;
	}
}
/*=============================【身份证号码的验证】结束==============================*/




/*=============================【整数数字的验证】开始==============================*/
/**
 * 功能:检查数据入的全部是数字
 * 使用:checkIsNumberNormal(objID,message,len)
 * @param objID 对象的id
 * @param len   对象的值最大长度
 * @return 是数字ture ,不是数字false;
 * @modify by @tombo
 */
 
//下面这个函数是验证数字为正整数或者为零 
function checkIsNumberNormal(objID,message,len){
	var objValue = document.getElementById(objID).value;
	if (checkIsNull(objID)){
		alert("【"+message+"】的值为空,请您输入!");
		document.getElementById(objID).focus();
		document.getElementById(objID).select();
		return false;
	}else{
		var pattern = "1234567890"; 
		var i; 
		var c; 
		for(i=0; i<objValue.length; i++) { 
			c = objValue.charAt(i); 
			if (pattern.indexOf(c) == -1) { 
				alert("【"+message+"】的格式不正确,只能由【1234567890】这些数字组成!");
				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false; 
			} 
		} 
		if(objValue.length > len) {
			alert("您输入的【"+message+"】过大,请检查后再输入!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false; 
		}
	} 
}
/*=============================【整数数字的验证】结束==============================*/




/*=============================【电话号码的验证】开始==============================*/
/**
 * 功能:判断是否为电话号码格式,由于大陆电话号码、港澳台和国际电话号码格式不一样,所以定义了一个通用的
 * 这里只验证不能包括的特殊字符,除了【0123456789-()+】这些字符
 * 使用:checkPhoneNormal(objID,message,len)
 * 返回:bool
 * @param  objID   对象的id
 * @param  message 对象的名称
 * @param  len     对象允许输入的最大长度
 * @modify by @tombo
 */
 
//这是适合大陆电话号码、港澳台地区和国际电话号码的通用函数
function checkPhoneNormal(objID,message,len) {
	var objValue = document.getElementById(objID).value;
	if (checkIsNull(objID)){
		alert("【"+message+"】的值为空,请您输入!");
		document.getElementById(objID).focus();
		document.getElementById(objID).select();
		return false;
	}else{
		var pattern = "0123456789()+-";
		for (i=0; i< objValue.length; i++){
			var CheckChar = objValue.charAt(i);
			if (pattern.indexOf(CheckChar) == -1){
				alert("【"+message+"】的格式不正确,只能由【0123456789-()+】这些字符组成!");
				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false;
			}
		}
		if(objValue.length > len) {
			alert("您输入的【"+message+"】过长,请检查后再输入!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false;
		}
	}	
}

/**
 * 功能:判断是否为电话号码格式
 * 这里只验证不能包括的特殊字符,除了【0123456789-()+】这些字符
 * 因为大陆的电话号码格式为区号为010,020到029,0300到0999,后面的号码为7位或者8位数字
 * 例如【010-88776655】、【0512-57882095】、【0724-8525712】
 * 使用:checkPhoneGuoNei(objID,message,len)
 * 返回:bool
 * @param  objID   对象的id
 * @param  message 对象的名称
 * @param  len     对象允许输入的最大长度
 * @modify by @tombo
 */
//下面是适合专门针对国内的电话号码
function checkPhoneGuoNei(objID,message,len) {
	var objValue = document.getElementById(objID).value;
	if (checkIsNull(objID)){
		alert("【"+message+"】的值为空,请您输入!");
		document.getElementById(objID).focus();
		document.getElementById(objID).select();
		return false;
	}else{
		var pattern = "0123456789()+-";
		for (i=0; i< objValue.length; i++){
			var CheckChar = objValue.charAt(i);
			if (pattern.indexOf(CheckChar) == -1){
				alert("【"+message+"】的格式不正确,只能由【0123456789-()+】这些字符组成!");
				document.getElementById(objID).focus();
				document.getElementById(objID).select();
				return false;
			}
		}
		//表示区号由010、020到029、0300到0999中的任意组成,中间的横线可有可无,后面是7位或8位数字组成
		var pattern2 = /010|02[0-9]{1}|0[3-9]{1}[0-9]{2}[-]{0,1}[0-9]{7,8}/;
		if (!pattern2.test( objValue )) { 
			alert("【"+message+"】的格式不正确,例如【010-87654567】、【0512-57882043】、\n【0724-8525712】,请检查区号和号码是否正确!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false; 
		}		
		if(objValue.length > len) {
			alert("您输入的【"+message+"】过长,请检查后再输入!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false;
		}
	}	
}
/*=============================【电话号码的验证】结束==============================*/




/*=============================【时间的验证】开始==============================*/
/**
 * 功能:检查数据输入的全部是时间 例如【13:05:12】,但不能为【13:60:00】
 * 使用:checkTimeNormal(objID,message)
 * @param objID 对象的id
 * @param message 对象的名称
 * @return bool;
 * @modify by @tombo
 */
function checkTimeNormal(objID,message) {
	var objValue = document.getElementById(objID).value;
	if (checkIsNull(objID)){
		alert("【"+message+"】的值为空,请您输入!");
		document.getElementById(objID).focus();
		document.getElementById(objID).select();
		return false;
	}else{
		var pattern = new RegExp("^([0-1]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$");
		if (!pattern.test( objValue )) { 
			alert("【"+message+"】的格式不正确,例如【13:05:20】,请检查是否正确!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false; 
		}
	}
}
/*=============================【时间的验证】结束==============================*/















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -