好长时间没有总结了,把最近用到的JavaScript基本校验工具函数放上来,以便以后直接调用。 function checkFormItem(FormItemName,CharType,MaxLength,Precision,DefiniteLengthMark,Describe){ try { var TValue; TValue=FormItemName.value; //得到文本框去掉头尾空格的值 TValue=TValue.replace(/(^/s*)|(/s*$)/g, ""); //去掉文本框头尾空格 FormItemName.value=TValue; //允许空,只要文本框为空返回true if((DefiniteLengthMark==2||DefiniteLengthMark==3||DefiniteLengthMark==6||DefiniteLengthMark==7)&&(TValue.length==0)) { return(true); } //不允许空,只要文本框为空返回false if((DefiniteLengthMark==0||DefiniteLengthMark==1||DefiniteLengthMark==4||DefiniteLengthMark==5)&&(TValue.length==0)) { alert(Describe+"不允许为空!"); setFormItemFocus(FormItemName); return(false); } //不允许负,只要文本框为负数返回false if(DefiniteLengthMark==4||DefiniteLengthMark==5||DefiniteLengthMark==6||DefiniteLengthMark==7) { if (TValue.indexOf("-") == 0) { alert(Describe+"不允许为负数!"); setFormItemFocus(FormItemName); return(false); } } //---------------------------------------- //检查字母类型 if(CharType=="M") { //检查输入类型,必须为字母 //ASCII码验证 var charCode = ""; for (var i = 0; i < TValue.length; i++) { charCode = TValue.charCodeAt(i); if ((charCode < 65 && charCode != 65) || (charCode > 90 && charCode < 97) || charCode > 122) { alert(Describe+"项填写必须输入字母,请检查!"); try { setFormItemFocus(FormItemName); } catch (ex) { } return(false); } } //正则表达式验证 var ZZ_TValue=TValue.replace(/(^[A-Za-z]+$)/g, ""); if(ZZ_TValue.length != 0 ){ alert(Describe+"项填写必须输入字母,请检查!"); try { setFormItemFocus(FormItemName); } catch (ex) { } return(false); } } //-------------------------------------- //检查字符串(长度和定长)。 if(CharType=="C" || CharType=="M") { if((DefiniteLengthMark==0||DefiniteLengthMark==3||DefiniteLengthMark==4||DefiniteLengthMark==7) && getStrLength(TValue)!=MaxLength) { alert(Describe+"规定长度是"+MaxLength+"个字符("+MaxLength/2+"个汉字),请检查!"); setFormItemFocus(FormItemName); return(false); } if(MaxLength!=0&&getStrLength(TValue)>MaxLength && (DefiniteLengthMark==1||DefiniteLengthMark==2||DefiniteLengthMark==5||DefiniteLengthMark==6)) { alert(Describe+"超过最大长度,允许的最大长度是"+MaxLength+"个字符("+MaxLength/2+"个汉字)!"); setFormItemFocus(FormItemName); return(false); } } //检查数字类型(长度,精度,定长) if(CharType=="N") { //检查整型数字 if(Precision==0&&!isInteger(TValue)) { alert(Describe+"项填写必须输入整数,请检查!"); setFormItemFocus(FormItemName); return(false); } if(Precision==0&&isInteger(TValue)&&MaxLength!=0&&(DefiniteLengthMark==0||DefiniteLengthMark==3||DefiniteLengthMark==4||DefiniteLengthMark==7)&&getStrLength(TValue)!=MaxLength) { alert(Describe+"项长度必须是"+MaxLength+",请检查!"); setFormItemFocus(FormItemName); return(false); } if(Precision==0&&isInteger(TValue)&&MaxLength!=0&&(DefiniteLengthMark==1||DefiniteLengthMark==2||DefiniteLengthMark==5||DefiniteLengthMark==6)&&getStrLength(Math.abs(TValue)+'')>MaxLength) { alert(Describe+"项输入整数长度不能超过"+MaxLength+",请检查!"); setFormItemFocus(FormItemName); return(false); } //检查整型数字结束 //检查实数 if(Precision!=0&&!isFloat(TValue)) { alert(Describe+"项必须输入数字,请检查!"); setFormItemFocus(FormItemName); return(false); } if(Precision!=0&&isFloat(TValue)&&MaxLength!=0&&(DefiniteLengthMark==0||DefiniteLengthMark==3||DefiniteLengthMark==4||DefiniteLengthMark==7)&&getStrLength(TValue.replace("." , ""))!=MaxLength) { alert(Describe+"项输入数字报错,输入数字整数位:" + (MaxLength-Precision) + "位;小数位:" + Precision + "位;共:" + MaxLength + "位有效数字"); // alert(Describe+"项输入数字长度必须是"+MaxLength+"位,请检查!"); setFormItemFocus(FormItemName); return(false); } if(Precision!=0&&isFloat(TValue)&&MaxLength!=0&&(DefiniteLengthMark==1||DefiniteLengthMark==2||DefiniteLengthMark==5||DefiniteLengthMark==6)&&getStrLength(TValue.replace("." , "")) > MaxLength) { alert(Describe+"项输入数字报错,输入数字整数位:" + (MaxLength-Precision) + "位;小数位:" + Precision + "位;共:" + MaxLength + "位有效数字"); // alert(Describe+"项输入数字长度不能超过"+MaxLength+"位,请检查!"); setFormItemFocus(FormItemName); return(false); } if(Precision!=0&&isFloat(TValue)&&!checkPrecision(TValue,Precision)) { alert(Describe+"项输入数字报错,输入数字整数位:" + (MaxLength-Precision) + "位;小数位:" + Precision + "位;共:" + MaxLength + "位有效数字"); // alert(Describe+"项输入数字的小数部分不能超过"+Precision+"位,请检查!"); setFormItemFocus(FormItemName); return(false); } if(Precision!=0&&isFloat(TValue)&&!checkZSBF(TValue,MaxLength,Precision)) { alert(Describe+"项输入数字报错,输入数字整数位:" + (MaxLength-Precision) + "位;小数位:" + Precision + "位;共:" + MaxLength + "位有效数字"); // alert(Describe+"项输入数字的整数部分不能超过"+(MaxLength-Precision)+"位,请检查!"); setFormItemFocus(FormItemName); return(false); } } /*验证日期类型张显达书写于2003年1月5日*/ if(CharType=="D") { //首先整理日期的格式 var i; var strYear; var strMonth; var strDate; if (TValue.match("^([12]//d{3}/[01]//d/[0123]//d)$")!=null||TValue.match("^([12]//d{3}/[01]//d/[0123]//d//s[012]//d:[0-5]//d)$")!=null ||TValue.match("^([12]//d{3}/[01]//d/[0123]//d//s[012]//d:[0-5]//d:[0-5]//d)$")!=null){ if (MaxLength!=0) { var NTValue = TValue.replace(g,""); NTValue = NTValue.replace(//s/g,""); NTValue = NTValue.replace(/:/g,""); if (getStrLength(NTValue)>MaxLength) { alert(Describe+"超过了允许的长度!"); setFormItemFocus(FormItemName); return false; } } } else if (TValue.match("^([12]//d{3}[01]//d[0123]//d)$")!=null||TValue.match("^([12]//d{3}[01]//d[0123]//d[012]//d[0-5]//d)$")!=null ||TValue.match("^([12]//d{3}[01]//d[0123]//d[012]//d[0-5]//d[0-5]//d)$")!=null){ if (MaxLength!=0) { if (getStrLength(TValue)>MaxLength) { alert(Describe+"超过了允许的长度!"); setFormItemFocus(FormItemName); return false; } } } else { alert(Describe+"格式不合法"); setFormItemFocus(FormItemName); return false; } } backBorderColor(FormItemName); return(true); } catch( e ) { alert(Describe+"发生异常错误,请检查!"); var blFlag=confirm("忽略" + Describe + "的错误吗?可能会造成数据不完整或者错误!" ); if ( blFlag == true ) { return ( true ); } else { return(false); } } }