//客户端数据验证相关函数 //验证变量是否为空白的字符串 function IsVacantStr(inVar) { if(inVar == null || inVar == "") return true; else return false; } //去除字符串两端的空隔 function trim(inVar) { var str; str = inVar str = ltrim(str); str = rtrim(str); return str; } //去除字符串左边的空隔 function ltrim(inVar) { var i, str, strLength; str = inVar.toString(); strLength = str.length; i = 0; while(i < strLength) { if(str.charAt(i) != " ") break; i++; } return str.substring(i, strLength) } //去除字符串右边的空隔 function rtrim(inVar) { var i, str, strLength; str = inVar.toString(); strLength = str.length; i = strLength - 1; while(i >= 0) { if(str.charAt(i) != " ") break; i--; } return str.substring(0, i + 1) } /******************************************************************************************** *函数名:validateInput *功能描述:验证输入的字符串是否符合validatePattern的设置 *参数: * inputObj Input到的对像 * validatePattern 验证的正则表达式模式 * inputStr 要验证的字符串 *返回值:如果字符串符合validatePattern的设置则返回true,否则返回false。 *********************************************************************************************/ function validateInput(inputObj, validatePattern, inputStr) { var docSel = document.selection.createRange() if (docSel.parentElement().tagName != "INPUT") return false oSel = docSel.duplicate() oSel.text = "" var srcRange = inputObj.createTextRange() oSel.setEndPoint("StartToStart", srcRange) var str = oSel.text + inputStr + srcRange.text.substr(oSel.text.length) return validatePattern.test(str) } /******************************************************************************************** *函数名:vIsUserName *功能描述:验证字符串是否符合用户名命名规则 *参数: * inVar 要验证的字符串 *返回值:如果符合用户名规则则返回true,否则返回false。 *********************************************************************************************/ function vIsUserName(inVar) { if(IsVacantStr(inVar)) return true; return /^[A-Za-z_]{1}[A-Za-z0-9_]{3,15}$/gi.test(inVar); } /******************************************************************************************** *函数名:vIsNotEmpty *功能描述:验证字符串是否为非空字符串 *参数: * inVar 要验证的字符串 *返回值:如果字符串为非空则返回true,否则返回false。 *********************************************************************************************/ function vIsNotEmpty(inVar) { var Str; Str = inVar.toString(); if(Str == "") return false; else return true; } /******************************************************************************************** '函数名:vIsNotNull '功能描述:验证字符串是否为非无效字符串 '参数: ' inVar 要验证的字符串 '返回值:如果字符串为非无效的则返回true,否则返回false。 *********************************************************************************************/ function vIsNotNull(inVar) { var Str; Str = inVar.toString(); if(trim(Str) == "") return false; else return true; } /******************************************************************************************** *函数名:vIsCoincidentLength *功能描述:验证字符串是否符合规定的长度范围之内 *参数: * inVar 要验证的字符串 * minLength 最小字符串 * maxLength 最大字符串 *返回值:如果字符串是符合规定的长度范围之内则返回true,否则返回false。 *********************************************************************************************/ function vIsCoincidentLength(inVar, minLength, maxLength) { var Str, StrLength, tempLength; var returnVal = true; Str = inVar.toString(); StrLength = Str.length; if(minLength == "" || minLength == null) minLength = null; if(maxLength == "" || maxLength == null) maxLength = null; if(minLength > maxLength && minLength != null && maxLength != null) { tempLength = minLength minLength = maxLength maxLength = tempLength } if(minLength != null && StrLength < minLength) returnVal = returnVal && false; if(maxLength != null && StrLength > maxLength) returnVal = returnVal && false; return returnVal; } /******************************************************************************************** *函数名:String_lengthB *功能描述:返回字符串所占的字节数 *返回值:字符串所占的字节数。 *********************************************************************************************/ function String_lengthB() { var i, strLengthB, strLength, charCode; strLength = this.length; strLengthB = 0; for(i = 0; i < strLength; i++) { charCode = this.charCodeAt(i); if(charCode < 0 || charCode > 255) strLengthB += 2; else strLengthB += 1; } return strLengthB; } //将String_lengthB添加到String对像的原型 String.prototype.lengthB = String_lengthB; /******************************************************************************************** *函数名:vIsCoincidentLengthB *功能描述:验证字符串是否符合规定的长度范围之内,以字节为单位 *参数: * inVar 要验证的字符串 * minLength 最小字符串 * maxLength 最大字符串 *返回值:如果字符串是符合规定的长度范围之内则返回True,否则返回False。 *********************************************************************************************/ function vIsCoincidentLengthB(inVar, minLength, maxLength) { var Str, StrLength, tempLength; var returnVal = true; Str = inVar.toString(); StrLength = Str.lengthB(); if(minLength == "" || minLength == null) minLength = null; if(maxLength == "" || maxLength == null) maxLength = null; if(minLength > maxLength && minLength != null && maxLength != null) { tempLength = minLength minLength = maxLength maxLength = tempLength } if(minLength != null && StrLength < minLength) returnVal = returnVal && false; if(maxLength != null && StrLength > maxLength) returnVal = returnVal && false; return returnVal; } /******************************************************************************************** *函数名:vIsEmail *功能描述:验证字符串是否符合Email格式 *参数: * inVar 要验证的字符串 *返回值:如果字符串是符合Email格式则返回true,否则返回false。 *********************************************************************************************/ function vIsEmail(inVar) { if(IsVacantStr(inVar)) return true; return /^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$/gi.test(inVar); } /******************************************************************************************** *函数名:vIsNumeric *功能描述:验证字符串是否符合数字的格式 *参数: * inVar 要验证的字符串 *返回值:如果字符串是符合数字格式则返回true,否则返回false。 *********************************************************************************************/ function vIsNumeric(inVar) { if(IsVacantStr(inVar)) return true; return /^-?[0-9]+(\.[0-9]*)?$/gi.test(inVar); } /******************************************************************************************** *函数名:vIsDate *功能描述:验证字符串是否符合日期的格式 *参数: * inVar 要验证的字符串 *返回值:如果字符串是符合日期格式则返回true,否则返回false。 *********************************************************************************************/ function vIsDate(inVar) { var returnVal; if(IsVacantStr(inVar)) return true; returnVal = !(isNaN(Date.parse(inVar.replace("-", "/")))); if(!returnVal) returnVal = !(isNaN(Date.parse(inVar.replace("-", "/") + "/1"))); return returnVal; } /******************************************************************************************** *函数名:vIsAreaNumber *功能描述:验证字符串是否符合电话区号的格式 *参数: * inVar 要验证的字符串 *返回值:如果字符串是符合电话区号的格式则返回true,否则返回false。 *********************************************************************************************/ function vIsAreaNumber(inVar) { if(IsVacantStr(inVar)) return true; return /^0[0-9]{2,3}$/gi.test(inVar); } /******************************************************************************************** *函数名:vIsPhone *功能描述:验证字符串是否符合电话号码的格式 *参数: * inVar 要验证的字符串 *返回值:如果字符串是符合电话号码的格式则返回true,否则返回false。 *********************************************************************************************/ function vIsPhone(inVar) { if(IsVacantStr(inVar)) return true; return /^((0[0-9]{2,3}[- \._]?)*[0-9]{3,10})|([0-9]{10,20})$/gi.test(inVar); } /******************************************************************************************** *函数名:vIsHandset *功能描述:验证字符串是否符合手机号码的格式 *参数: * inVar 要验证的字符串 *返回值:如果字符串是符合手机号码的格式则返回true,否则返回false。 *********************************************************************************************/ function vIsHandset(inVar) { if(IsVacantStr(inVar)) return true; return /^((0[0-9]{2,3}[- \._]?)*[0-9]{3,10})|([0-9]{10,20})$/gi.test(inVar); } /******************************************************************************************** *函数名:vIsChinese *功能描述:验证字符串是否为中文 *参数: * inVar 要验证的字符串 *返回值:如果字符串是中文则返回true,否则返回false。 *********************************************************************************************/ function vIsChinese(inVar) { var i, Str, returnVal, charCode; Str = inVar; returnVal = true; for(i = 0; i < Str.length; i++) { charCode = Str.charCodeAt(i) returnVal = returnVal && (charCode < 0 || charCode > 255); } return returnVal; } /******************************************************************************************** *函数名:vIsEnglish *功能描述:验证字符串是否为英文字符 *参数: * inVar 要验证的字符串 *返回值:如果字符串是英文字符则返回true,否则返回false。 *********************************************************************************************/ function vIsEnglish(inVar) { var i, Str, returnVal, charCode; Str = inVar; returnVal = true; for(i = 0; i < Str.length; i++) { charCode = Str.charCodeAt(i) returnVal = returnVal && (charCode >= 0 && charCode <= 255); } return returnVal; } /******************************************************************************************** *函数名:vIsSelect *功能描述:验证控件是否选定 *参数: * control 要验证的控件 *返回值:如果控件选定则返回true,否则返回false。 *********************************************************************************************/ function vIsSelect(control) { var i; if(control.tagName == "SELECT") { for(i = 0; i < control.options.length; i ++) if(control.options[i].selected == true && control.options[i].value != "") return true; } else// if(control.tagName == "INPUT" && (control.type == "checkbox" || control.type == "radio")) { if(typeof(control.length) == "undefined") return control.checked; else for(i = 0; i < control.length; i++) if(control[i].checked == true) return true; } return false; } /******************************************************************************************** *函数名:vCompare *功能描述:对两个数据进行比较 *参数: * inValidate 要验证的数据 * Operator 比较的类型 * inCompare 进行对比的数据 *返回值:如果比较符合Operator则返回True,否则返回False。 *********************************************************************************************/ function vCompare(inValidate, Operator, inCompare) { var CompareResult; switch(Operator) { case "=": CompareResult = (inValidate == inCompare)?true:false; break; case "<>": CompareResult = (inValidate != inCompare)?true:false; break; case ">": CompareResult = (inValidate > inCompare)?true:false; break; case ">=": CompareResult = (inValidate >= inCompare)?true:false; break; case "<": CompareResult = (inValidate < inCompare)?true:false; break; case "<=": CompareResult = (inValidate <= inCompare)?true:false; break; case "VT": CompareResult = (typeof(inValidate) == typeof(inCompare))?true:false; break; } return CompareResult; }