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

📄 validateutil.js

📁 利用jxl和jdom到报表用的,可以自定义excel模板
💻 JS
📖 第 1 页 / 共 3 页
字号:
 * 下面是判断null值或空值、是否有空格;如果有空格直接替换,不出现警告信息
 * @param {objID} 对象的ID
 * @param message 对象的名称
 * @modify by @tombo
 */
function replaceBlankValidateAll(objID,message) {
	if(checkIsNull(objID)) {
		alert("【"+message+"】的值为空,请您输入!");
		document.getElementById(objID).focus();
		document.getElementById(objID).select();
		return false;
	}else{
		document.getElementById(objID).value = replaceSpaceAll(objID);	
		return true;
	}
}
/*===========================【空值和空格的验证】结束==============================*/




/*=============================【日期的验证】开始==============================*/
/**
 * 功能:判断是否为日期(格式:2007-04-15)
 * 使用:dateCheck(objID,message)
 * 返回:bool
 * @param  objID   对象的id
 * @param  message 对象的名称
 * @modify by @tombo
 */
function dateCheck(objID,message){
 	if(checkIsNull(objID)) {
 		alert("【"+message+"】为空值,请您输入!");
 		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
 	}
    
	var datePat = /^(\d{2}|\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/;
    var dateStr = document.getElementById(objID).value;
	var matchArray = dateStr.match(datePat); 
	
	if(matchArray==null){
  		alert("您输入的【"+message+"】格式不正确,例如: 【2007-03-12】!");
  		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
	}
	
    year=matchArray[1];
    month=matchArray[3];
    day=matchArray[5];     
    
    if (year.length!=4 || month.length!=2 || day.length!=2){
  		alert("您输入的【"+message+"】格式不正确,例如: 【2007-03-12】!");
  		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
    }
    if (month < 1 || month > 12){
  		alert("您输入的【"+message+"】格式不正确,【"+message+"】的月数不正确!");
  		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
    }
    if (day < 1 || day > 31){
  		alert("您输入的【"+message+"】格式不正确,【"+message+"】的天数不正确!");
  		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
    }     
    if ((month==4 || month==6 || month==9 || month==11) && day==31){
 		alert("您输入的【"+message+"】格式不正确,【"+message+"】的天数不正确!");
 		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
    }     
    if (month==2){
        var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));
        if (day>29 || ((day==29) && (!isleap))){
   			alert("您输入的【"+message+"】格式不正确,【"+message+"】的天数不正确!");
   			document.getElementById(objID).focus();
			document.getElementById(objID).select();
            return false;
        }
    }
    return true;
}
/*=============================【日期的验证】结束==============================*/




/*=============================【电子邮件地址的验证】开始==============================*/
/**
 * 功能:邮箱地址检查
 * 使用:mailCheck(objID,message,len)
 * 返回:bool
 * @param  objID 对象的id
 * @param  message objID所对应的名字,你可以自己形象的取名字
 * @param  len objID的值最大长度
 * @modify @tombo
 */
function mailCheck(objID,message,len){
	var objValue = replaceSpaceAll(objID);//将email中的所有空格替换成为空字符串
	if(objValue!= "" && objValue.length>1){
		var ok1=objValue.indexOf("@");
		var ok2=objValue.indexOf(".");
		if(!((ok1!=-1)&&(ok2!=-1))){
			alert("您输入的【"+message+"】格式不正确,【"+message+"】的正确写法例如【tombo@sohu.com】!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false;
		}
		var allowstrlist = "&#%<>";
		var endvalue = true;
		for (i=0;i<objValue.length;i++) {
			if(allowstrlist.indexOf(objValue.substr(i,1))!=-1) {
				endvalue=false;   
				break;
			}
		}
		if(endvalue==false){
			alert("您输入的【"+message+"】格式不正确,【"+message+"】的正确写法例如【tombo@sohu.com】!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false;   
		}
		if(objValue.length > len) {
			alert("您输入的【"+message+"】过长,不能超过"+len+"个字符!");
			document.getElementById(objID).focus();
			document.getElementById(objID).select();
			return false; 
		}
		//邮件地址正确
		document.getElementById(objID).value = objValue;
		return true;
	}else{
  		//请输入电子信箱地址
		alert("【"+message+"】的值为空,请您输入!");
		document.getElementById(objID).focus();
		document.getElementById(objID).select();
		return false;
	}
}
/*=============================【电子邮件地址的验证】结束==============================*/




/*=============================【身份证号码的验证】开始==============================*/
/**
 * 功能:验证身份证 目前只对大陆、香港和台湾的身份证做验证
 * 使用:checkIdentityCard(objID,message)
 * @param objID 对象的id
 * @param message 对象的名称
 * @return bool;
 * @modify by @tombo
 */
function checkIdentityCard(objID,message) {
	if(checkIsNull(objID)) {
 		alert("【"+message+"】为空值,请您输入!");
 		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
 	} 	
 	var objValue = document.getElementById(objID).value;
	var area = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",
				22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",
				35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",
				44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",
				53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",
				65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
	var idcard,Y,JYM;
	idcard = objValue;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	//身份号码位数及格式检验开始
	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位身份证号码检测
			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位身份证号码检测
			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;
	}
}


/**
 * 功能:结合出生日期验证身份证 目前只对大陆、香港和台湾的身份证做验证
 * 使用:checkIdentityCard(objID,objID2,message)
 * @param objID   身份证号码
 * @param objID2  出生日期  格式为【1980-08-15】
 * @param message 对象的名称
 * @return bool;
 * @modify by @tombo
 */
function checkIdentityCard(objID,objID2,message) {
	if(checkIsNull(objID)) {
 		alert("【"+message+"】为空值,请您输入!");
 		document.getElementById(objID).focus();
		document.getElementById(objID).select();
        return false;
 	} 	
 	var objValue = document.getElementById(objID).value;
 	var objValue2 = document.getElementById(objID2).value;
	var area = {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",
				22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",
				35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",
				44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",
				53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",
				65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"}
	var idcard,Y,JYM;
	idcard = objValue;
	var S,M;
	var idcard_array = new Array();
	idcard_array = idcard.split("");
	//身份号码位数及格式检验开始

⌨️ 快捷键说明

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