首页 > 网站 > WEB开发 > 正文

使用JAVASCRIPT进行数据完整性验证

2024-04-27 14:20:12
字体:
来源:转载
供稿:网友

使用javaSCRipT进行数据完整性验证

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

  1. <formname="form1">
  2. <inputtype="text"name="t1"req="0"size="20"><br>
  3. <inputtype="text"name="t2"req="0"size="20"><br>
  4. <inputtype="text"name="t3"req="0"size="20"><br>
  5. <inputtype="text"name="t4"req="1"size="20"><br>
  6. <inputtype="text"name="t5"req="1"customtype="email"displayname="电子邮件"size="20"><br>
  7. <inputtype="button"name="bt"value="check"onclick="checkForm(document.form1)">
  8. </form>

并在页头加以包含以下代码的JS脚本:

  1. varcustomtypes=newArray("num","plus","int","email","link","passWord","name","date","money","date8");
  2. varcustommessage=newArray(
  3. "不是一个有效的数字。",
  4. "不是一个有效的正整数。",
  5. "不是一个有效的整数。",
  6. "不是一个有效的电子邮件地址。",
  7. "不是一个有效的链接,请确认输入了完整的地址,例如http://www.cnlist.com。",
  8. "不是一个有效的密码,密码只能使用字母、下划线与数字,不能包含符号与空格。",
  9. "不是一个有效的名称,名称只能使用字母、下划线与数字,不能包含符号与空格。",
  10. "不是一个有效的日期。",
  11. "不是一个有效的money格式。",
  12. "不是一个有效的8位日期,如:20050801。"
  13. );
  14. functioncheckForm(oForm){
  15. window.event.returnValue=false;
  16. for(vari=0;i<oForm.all.tags("input").length;i++){
  17. varele=oForm.all.tags("input")[i];
  18. varct=ele.getAttribute("customtype");
  19. varreq=ele.getAttribute("req");
  20. vardn=ele.getAttribute("displayname");
  21. if(null==dn){
  22. dn=ele.name;
  23. }
  24. dn="“"+dn+"”";
  25. if(ele.value!=null){
  26. ele.value=ele.value.replace(/%/g,"%");
  27. }
  28. varnr=newString(ele.value);
  29. if("1"==req){
  30. if(nr.length<1){
  31. alert(dn+"不可以省略,请重新输入。");
  32. //ele.focus();
  33. focusIt(ele);
  34. returnfalse;
  35. }
  36. }
  37. if((''==req||'0'==req||null==req)&&(ele.value==""))continue;//不必要且没有输入时,下一个
  38. if(((""==req)||(null==ct))&&(ele.value==""))continue;
  39. //检查自定义类型
  40. //纠正自定义类型在req不等于1时仍要求输入的bug
  41. if(("1"==req)||(nr.length>0)){
  42. for(varj=0;j<customtypes.length;j++){
  43. if(ct==customtypes[j]){
  44. if(ct=="money"){
  45. eval("varrtn=check_"+customtypes[j]+"(ele);");
  46. }else{
  47. eval("varrtn=check_"+customtypes[j]+"(ele.value);");
  48. }
  49. if(!rtn){
  50. alert(dn+custommessage[j]);
  51. //ele.focus();
  52. focusIt(ele);
  53. returnfalse;
  54. }
  55. }
  56. }
  57. }
  58. }
  59. window.event.returnValue=true;
  60. returntrue;
  61. }
  62. functioncheck_money(s){
  63. s.value=s.value.replace(/,/g,"")
  64. varre=/^(/+|-)?/d+(./d+)?$/i;
  65. returnre.test(s.value);
  66. }
  67. functioncheck_email(s){
  68. varre=/^/w+@(/w)+((.(/w)+)+)?$/i;
  69. returnre.test(s);
  70. }
  71. functioncheck_num(s){
  72. varre=/^(/+|-)?/d+(./d+)?$/i;
  73. returnre.test(s);
  74. }
  75. functioncheck_int(s){
  76. varre=/^(/+|-)?/d+$/i;
  77. returnre.test(s);
  78. }
  79. functioncheck_plus(s){
  80. varre=/^[1-9]/d*$/i
  81. returnre.test(s);
  82. }
  83. functioncheck_link(s){
  84. varre=/^(http|mailto|ftp|https|telnet)://{2}/i;
  85. returnre.test(s);
  86. }
  87. functioncheck_password(s){
  88. varre=/^/w+$/i;
  89. returnre.test(s);
  90. }
  91. functioncheck_name(s){
  92. returncheck_password(s);
  93. }
  94. functioncheck_date8(DateString){
  95. returnisDateEight(DateString);
  96. }
  97. //日期检测
  98. functioncheck_date(DateString){
  99. if(DateString==null)returnfalse;
  100. if(Dilimeter==''||Dilimeter==null)
  101. varDilimeter='-';
  102. if(Dilimeter.indexOf("/")>0)
  103. {
  104. Dilimeter="/";
  105. }
  106. vartempy='';
  107. vartempm='';
  108. vartempd='';
  109. vartempH="";
  110. vartempM="";
  111. vartempS="";
  112. vartempymd="";
  113. vartemphms="";
  114. vartempArray;
  115. if(DateString.length<8&&DateString.length>19){
  116. returnfalse;
  117. }
  118. if(DateString.indexOf("")>0)
  119. {
  120. temp=DateString.split("");
  121. tempymd=temp[0];
  122. temphms=temp[1];
  123. }
  124. else
  125. {
  126. tempymd=DateString;
  127. temphms="00:00:00";
  128. }
  129. tempArray=tempymd.split(Dilimeter);
  130. if(tempArray.length!=3){
  131. returnfalse;
  132. }
  133. if(tempArray[0].length==4)
  134. {
  135. tempy=tempArray[0];
  136. tempd=tempArray[2];
  137. tempm=tempArray[1];
  138. }
  139. else
  140. {
  141. tempy=tempArray[2];
  142. tempd=tempArray[1];
  143. tempm=tempArray[0];
  144. }
  145. tempArray=temphms.split(":");
  146. if(tempArray.length>3||tempArray.length<2){
  147. returnfalse;
  148. }
  149. switch(tempArray.length){
  150. case2:
  151. tempH=tempArray[0];
  152. tempM=tempArray[1];
  153. tempS="00";
  154. break;
  155. case3:
  156. tempH=tempArray[0];
  157. tempM=tempArray[1];
  158. tempS=tempArray[2];
  159. break;
  160. }
  161. vartDateString=tempy+'/'+tempm+'/'+tempd+''+tempH+":"+tempM+":"+tempS;
  162. vartempDate=newDate(tDateString);
  163. if(isNaN(tempDate)){
  164. returnfalse;
  165. }
  166. if((tempDate.getYear().toString()==tempy||tempDate.getYear()==parseInt(tempy,10)-1900)
  167. &&(tempDate.getMonth()==parseInt(tempm,10)-1)
  168. &&(tempDate.getDate()==parseInt(tempd,10))
  169. &&(tempDate.getHours().toString()==parseInt(tempH,10))
  170. &&(tempDate.getMinutes().toString()==parseInt(tempM,10))
  171. &&(tempDate.getSeconds().toString()==parseInt(tempS,10)))
  172. {
  173. returntrue;
  174. }
  175. else
  176. {
  177. alert('tDateString='+tDateString);
  178. returnfalse;
  179. }
  180. }
  181. //激活输入组件的焦点
  182. functionfocusIt(obj){
  183. try{
  184. varele=mtb;
  185. }catch(e){
  186. try{
  187. obj.focus();
  188. return;
  189. }catch(e){
  190. return;
  191. }
  192. }
  193. for(vari=0;i<ele.length;i++){
  194. swH(i);
  195. try{
  196. obj.focus();
  197. }catch(e){
  198. continue;
  199. }
  200. break;
  201. }
  202. try{
  203. obj.focus();
  204. }catch(e){
  205. returnfalse;
  206. }returntrue;
  207. }


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表