/* Date | Author | Project | Change Description 20031023| corlin chen | 天津大客户 | 添加多个电话号码输入框的验证. ********************基本格式******************************* 例字符类型,最大长度为32,最小为20 例货币类型,金额最大为1000 类型:(必填) string 字符型 zip 邮政编码型 money 货币型 0-9 0-9型 int 整型 可以为负数 float 浮点型 可以为负数 email 电子邮件型 date 日期型 (属性由month,day,输入表单元素的名称name) pwd 密码型 (属性有pwd2,输入校验密码的域名) phone 电话型 phones 多个电话号码型 idcard 身份证型 属性:v_minlength 最小长度(最大长度可以用size)(如果等于0,表示此项可以为空,如果等于null,或一个数字说明不能为空) v_maxvalue 最小值 v_minivalue 最大值 v_name 报错时显示的名称 v_must 必填项(1,必填 0非必填) v_maxlength 最大长度 v_type 类型(必填) ××××××××××××入口函数××××××××××××××××××× function check(formname) ××××××××××××基本函数列表××××××××××××××××××× function boolean isMadeOf(value,str) //判断value中的字符是否由str中的字符组成 function boolean isSizeOf(value,max,min)//判断value的大小是否由符合标准 function boolean isLengthOf(value,max,min)//判断value的长度是否由符合标准 function boolean isNotNull(value)//判断value是否空或null function trimSubStr(ATrimStr,ASubStr,AWhere)//去掉符合条件的字符,用于去空格 ××××××××××××扩充函数列表××××××××××××××××××× function void packUp(obj)//整理域的属性值,校验v_×域的值是否符合标准 ××××××××××××××××××接口函数列表×××××××××××××××××××× function void forString(obj)//判断一般字符串的长度 function void forZip(obj)//判断邮政编码 function void forMoney(obj)//判断金额 function void for0-9(obj)//判断字符是否由0-9个数字组成 function void forInt(obj)//判断字符是否是整数组成,可以为负数 function void forFloat(obj)//判断字符是否是数字,可以有小数点,负数 function void forEmail(obj)//判断字符是合法的电子邮件 function void forDate(obj1,obj2,obj2)//判断字符是合法的日期 function void forPwd(obj1,obj2)//判断字符密码,两次输入密码是否相等 function void forPhone(obj)//判断字符是否是合法的电话021-55555555,(021)2222222, function void forPhones(obj)//判断字符是否是合法的多个电话021-55555555;(021)2222222, function void forMadeOf(obj,str)//判断字符是否是由str里的字符组成 function void forIdCard(obj1)//判断字符是否是合法的身份证号 */ //*****************全局变量**************************** var numStr="0123456789"; var moneyStr = numStr + ".";//金额的组成,浮点数的组成 var intStr = numStr+"-"; var floatStr = moneyStr+"-"; var phoneStr = "()-#" + numStr;//电话号码 var phonesStr = ";;" + numStr;//多个电话号码 var flag = 0; //*********************入口函数*************************** function check(form) { var obj = null; var t = null; var i; for (i=0;i maxval){ return false; } } if (!isNaN(minval)){ if (selval < minval){ return false; } } /* if (val < min || val > max){ return false; } */ return (true); } function isLengthOf(val,min,max) { var minlen = parseInt(min); var maxlen = parseInt(max); if (!isNaN(maxlen)){ if (val.length > maxlen){ return false; } } if (!isNaN(minlen)){ if (val.length < minlen){ return false; } } /* if (val.length < minlen || val.lengh > maxlen ){ return false; } */ return true; } //判断小数点 function isValid_dot(val) { var subvalue; if (val.indexOf(".",0) != -1){ subvalue = val.substring(val.indexOf(".",0)+1); if (subvalue.indexOf(".",0) != -1){ return false; } } return true; } //判断负号 function isValid_negative(val) { var subvalue; if (val.indexOf("-",0) != -1){ if (val.indexOf("-",0) > 0){ return false; } subvalue = val.substring(val.indexOf("-",0)+1); if (subvalue.indexOf("-",0) != -1){ return false; } } return true; } //判断合适长度 function isRight_length(val,num) { var len = parseInt(num); if (isNaN(len)){ return true;} if (val.length != len){ return false; } return true; } //*************************************************************************************************** //--- 从ATrimStr中去掉符合条件的字符串ASubStr //--- 参数: //--- ATrimStr:要去掉符合条件字符串的字符串 //--- ASubStr:要去掉的子字符串 //--- AWhere 0:去掉所有的, 1:去掉左边相连的,2:去掉右面的相连的 //--- 返回: 处理完的字符串 //--- 创建日期: 2001-07-27 最近更新日期: 2001-07-27 //--- 创建程序员: xg_delayth 最近更新程序员: xg_delayth //--- 维护程序员: xg_delayth //--- 举例: trimSubStr(" usj 29 "," ",0) 返回 "usj29" function trimSubStr(ATrimStr,ASubStr,AWhere){ var tTrLength,tSbLength,tempLength; var tempString; var i; tTrLength = ATrimStr.length; tSbLength = ASubStr.length; if (tSbLength == 0){return ATrimStr;} if (tSbLength > tTrLength){return ATrimStr;} tempString = ATrimStr; switch(AWhere){ case 0://所有 do{ tempLength = tempString.length; tempString = tempString.replace(ASubStr,""); } while(tempLength != tempString.length); break; case 1://左 while (true){ if (tempString.length < tSbLength) break; for (i = 0;i < tSbLength;i++) if (ASubStr.charAt(i) != tempString.charAt(i)) return tempString; tempString = tempString.replace(ASubStr,""); }; case 2://右 while(true){ tempLength = tempString.length; if (tempLength < tSbLength){return tempString;} for (i = 0;i < tSbLength;i ++){ if (ASubStr.charAt(i) != tempString.charAt(tempLength - tSbLength+i)){ return tempString; } } tempString = tempString.substr(0,tempLength-tSbLength); }; default: return tempString; } return tempString; } //*************************************************************************************************** //××××××××××××扩充函数列表××××××××××××××××××× //整理域的属性值,校验v_×域的值是否符合标准 function packUp(obj) { if (obj == null){ alert("非法对象"); return false; } if (obj.value != null){ obj.value = trimSubStr(trimSubStr(obj.value," ",1)," ",2); } //创建v_name属性 try{ if (obj.v_name == null){ //alert("创建v_name属性"); obj.v_name = new String(obj.name); } }catch(exception){} //创建v_type属性 try{ if (obj.v_type == null){ //alert("创建v_type属性"); obj.v_type = new String("string"); } }catch(exception){} //创建v_minlength属性 try{ if (obj.v_minlength == null){ //alert("创建v_minlength属性"); obj.v_minlength = new String("0"); } }catch(exception){} //创建v_maxlength属性 try{ if (obj.v_maxlength == null){ //alert("创建v_maxlength属性"); obj.v_maxlength = new String(""); } }catch(exception){} //创建v_maxvalue属性 try{ if (obj.v_maxvalue == null){ //alert("创建v_maxvalue属性"); obj.v_maxvalue = new String(""); } }catch(exception){} //创建v_minvalue属性 try{ if (obj.v_minvalue == null){ //alert("创建v_minvalue属性"); obj.v_minvalue = new String(""); } }catch(exception){} //创建v_must属性 try{ if (obj.v_must == null){ //alert("创建v_must属性"); obj.v_must = new String("0"); } }catch(exception){} return true; } //*********************扩充函数*************************** function forDate(useryear,usermonth,userday) { var myyear; var mymonth; var myday; //myyear=parseInt(useryear); //mymonth=parseInt(usermonth); //myday=parseInt(userday); myyear=useryear; mymonth=usermonth; myday=userday; if (myyear < 1950 || myyear > 2050 ||mymonth < 1 ||mymonth > 12 || myday < 1 || myday > 31) return (false); if(mymonth==4 || mymonth==6 || mymonth==9 || mymonth==11) { if(myday>30) return (false); } if(myyear%4==0) { if((myyear%100==0 && myyear%400==0) || myyear%100!=0) { if(mymonth==2 && myday>29) return (false); else return (true); } } else { if(mymonth==2 && myday>28) return (false); else return (true); } } function forString(obj)//判断一般字符串的长度 { //必填项判断 if (obj.v_must!="0"){ if (obj.value.length == 0){ alert("'" + obj.v_name + "'为必填项,请务必填写"); flag = 1; obj.focus(); return false; } } if (!isLengthOf(obj.value,obj.v_minlength,obj.v_maxlength)){ flag = 1; alert("'"+obj.v_name+"'的值不正确!长度有错误!"); obj.focus(); return false; } return true; } function forZip(obj)//判断邮政编码 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,numStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请输入数字!"); obj.focus(); return false; } if (!isRight_length(obj.value,"6")){ flag = 1; alert("'"+obj.v_name+"'的值不正确!长度有错误!(6位数字)"); obj.focus(); return false; } return true; } function forMoney(obj)//判断金额 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,moneyStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请输入数字!"); obj.focus(); return false; } if (!isValid_dot(obj.value)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!小数点有错误!"); obj.focus(); return false; } if (!isSizeOf(obj.value,obj.v_minvalue,obj.v_maxvalue)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!超出规定范围!"); obj.focus(); return false; } return true; } function for0_9(obj) //判断字符是否由0-9个数字组成 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,numStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请输入数字!"); obj.focus(); return false; } return true; } function forInt(obj)//判断字符是否是整数组成,可以为负数 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,intStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请输入数字!"); obj.focus(); return false; } if (!isValid_negative(obj.value)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!'-'符号有错误!"); obj.focus(); return false; } if (!isSizeOf(obj.value,obj.v_minvalue,obj.v_maxvalue)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!超出规定范围!"); obj.focus(); return false; } return true; } function forFloat(obj)//判断字符是否是数字,可以有小数点,负数 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,floatStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请输入数字!"); obj.focus(); return false; } if (!isValid_dot(obj.value)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!小数点有错误!"); obj.focus(); return false; } if (!isValid_negative(obj.value)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!'-'符号有错误!"); obj.focus(); return false; } if (!isSizeOf(obj.value,obj.v_minvalue,obj.v_maxvalue)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!超出规定范围!"); obj.focus(); return false; } return true; } function forPhone(obj)//判断字符是否是合法的电话021-55555555,(021)2222222, { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,phoneStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请填写数字,可以包含(,),-,#符号"); obj.focus(); return false; } } function forPhones(obj)//判断字符是否是合法的电话021-55555555;(021)2222222, { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,phonesStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!请填写数字,可以包含;;等分隔符号"); obj.focus(); return false; } } function forEmail(obj)//判断字符是合法的电子邮件 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } var myReg = /^[_a-z0-9-]+@([_a-z0-9-]+\.)+[a-z0-9]{2,3}$/; if(myReg.test(obj.value)){ return true; } alert("'" + obj.v_name + "'的值不正确!请确信填写正确的电子邮箱!"); flag = 1; obj.focus(); return false; } function forIdCard(obj)//判断字符是否是合法的身份证 { if (!forString(obj)){ flag = 1; obj.focus(); return false; }else{ if (obj.value.length == 0){ return true; } } if (!isMadeOf(obj.value,numStr)){ flag = 1; alert("'" + obj.v_name + "'的值不正确!身份证必须填写数字!"); obj.focus(); return false; } if (!isRight_length(obj.value,"15") && !isRight_length(obj.value,"18")){ flag = 1; alert("'" + obj.v_name + "'的值不正确!身份证长度不正确(15或18位数字)!"); obj.focus(); return false; } return true; } /* function void forDate(obj1,obj2,obj2)//判断字符是合法的日期 function void forPwd(obj1,obj2)//判断字符密码,两次输入密码是否相等 function void forMadeOf(obj,str)//判断字符是否是由str里的字符组成 */