T进行数据完整性验证

王朝学院·作者佚名  2016-05-23
窄屏简体版  字體: 小  |  中  |  大  |  超大  

使用javaSCRipT进行数据完整性验证页面输入完整性是编写BS经常遇到的问题,如果那里需要就到那里写,那可是要花不少的时候,并且造成不必要的浪费,下面是一个通过校验脚本,使用非常方便,通过传入FORM名就可以进行校验,通过在页面控件中增加用户本身自定义属性,进行方便的验证,包括数字的输入、密码的输入、EMAIL的输入,用户本身可以进行无限的扩展,使用如下,在页面中加入如下代码:

<formname="form1"><inputtype="text"name="t1"req="0"size="20"><br><inputtype="text"name="t2"req="0"size="20"><br><inputtype="text"name="t3"req="0"size="20"><br><inputtype="text"name="t4"req="1"size="20"><br><inputtype="text"name="t5"req="1"customtype="email"displayname="电子邮件"size="20"><br><inputtype="button"name="bt"value="check"onclick="checkForm(document.form1)"></form>并在页头加以包含以下代码的JS脚本:

varcustomtypes=newArray("num","plus","int","email","link","passWord","name","date","money","date8");varcustommessage=newArray("不是一个有效的数字。","不是一个有效的正整数。","不是一个有效的整数。","不是一个有效的电子邮件地址。","不是一个有效的链接,请确认输入了完整的地址,例如http://www.cnlist.com。","不是一个有效的密码,密码只能使用字母、下划线与数字,不能包含符号与空格。","不是一个有效的名称,名称只能使用字母、下划线与数字,不能包含符号与空格。","不是一个有效的日期。","不是一个有效的money格式。","不是一个有效的8位日期,如:20050801。");functioncheckForm(oForm){window.event.returnValue=false;for(vari=0;i<oForm.all.tags("input").length;i++){varele=oForm.all.tags("input")[i];varct=ele.getAttribute("customtype");varreq=ele.getAttribute("req");vardn=ele.getAttribute("displayname");if(null==dn){dn=ele.name;}dn="“"+dn+"”";if(ele.value!=null){ele.value=ele.value.replace(/%/g,"%");}varnr=newString(ele.value);if("1"==req){if(nr.length<1){alert(dn+"不可以省略,请重新输入。");//ele.focus();focusIt(ele);returnfalse;}}if((''==req||'0'==req||null==req)&&(ele.value==""))continue;//不必要且没有输入时,下一个if(((""==req)||(null==ct))&&(ele.value==""))continue;//检查自定义类型//纠正自定义类型在req不等于1时仍要求输入的bugif(("1"==req)||(nr.length>0)){for(varj=0;j<customtypes.length;j++){if(ct==customtypes[j]){if(ct=="money"){eval("varrtn=check_"+customtypes[j]+"(ele);");}else{eval("varrtn=check_"+customtypes[j]+"(ele.value);");}if(!rtn){alert(dn+custommessage[j]);//ele.focus();focusIt(ele);returnfalse;}}}}}window.event.returnValue=true;returntrue;}functioncheck_money(s){s.value=s.value.replace(/,/g,"")varre=/^(/+|-)?/d+(./d+)?$/i;returnre.test(s.value);}functioncheck_email(s){varre=/^/w+@(/w)+((.(/w)+)+)?$/i;returnre.test(s);}functioncheck_num(s){varre=/^(/+|-)?/d+(./d+)?$/i;returnre.test(s);}functioncheck_int(s){varre=/^(/+|-)?/d+$/i;returnre.test(s);}functioncheck_plus(s){varre=/^[1-9]/d*$/ireturnre.test(s);}functioncheck_link(s){varre=/^(http|mailto|ftp|https|telnet)://{2}/i;returnre.test(s);}functioncheck_password(s){varre=/^/w+$/i;returnre.test(s);}functioncheck_name(s){returncheck_password(s);}functioncheck_date8(DateString){returnisDateEight(DateString);}//日期检测functioncheck_date(DateString){if(DateString==null)returnfalse;if(Dilimeter==''||Dilimeter==null)varDilimeter='-';if(Dilimeter.indexOf("/")>0){Dilimeter="/";}vartempy='';vartempm='';vartempd='';vartempH="";vartempM="";vartempS="";vartempymd="";vartemphms="";vartempArray;if(DateString.length<8&&DateString.length>19){returnfalse;}if(DateString.indexOf("")>0){temp=DateString.split("");tempymd=temp[0];temphms=temp[1];}else{tempymd=DateString;temphms="00:00:00";}tempArray=tempymd.split(Dilimeter);if(tempArray.length!=3){returnfalse;}if(tempArray[0].length==4){tempy=tempArray[0];tempd=tempArray[2];tempm=tempArray[1];}else{tempy=tempArray[2];tempd=tempArray[1];tempm=tempArray[0];}tempArray=temphms.split(":");if(tempArray.length>3||tempArray.length<2){returnfalse;}switch(tempArray.length){case2:tempH=tempArray[0];tempM=tempArray[1];tempS="00";

break;case3:tempH=tempArray[0];tempM=tempArray[1];tempS=tempArray[2];

break;}vartDateString=tempy+'/'+tempm+'/'+tempd+''+tempH+":"+tempM+":"+tempS;vartempDate=newDate(tDateString);if(isNaN(tempDate)){returnfalse;}if((tempDate.getYear().toString()==tempy||tempDate.getYear()==parseInt(tempy,10)-1900)&&(tempDate.getMonth()==parseInt(tempm,10)-1)&&(tempDate.getDate()==parseInt(tempd,10))&&(tempDate.getHours().toString()==parseInt(tempH,10))&&(tempDate.getMinutes().toString()==parseInt(tempM,10))&&(tempDate.getSeconds().toString()==parseInt(tempS,10))){returntrue;}else{alert('tDateString='+tDateString);returnfalse;}}//激活输入组件的焦点functionfocusIt(obj){try{varele=mtb;}catch(e){try{obj.focus();return;}catch(e){return;}}for(vari=0;i<ele.length;i++){swH(i);try{obj.focus();}catch(e){continue;}

break;}try{obj.focus();}catch(e){returnfalse;}returntrue;}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航