anqli

博客园 首页 新随笔 联系 订阅 管理
  1 js验证表单大全
  2 1. 长度限制
  3 <script>
  4 function test() 
  5 {
  6 if(document.a.b.value.length>50)
  7 {
  8 alert("不能超过50个字符!");
  9 document.a.b.focus();
 10 return false;
 11 }
 12 }
 13 </script>
 14 <form name=a onsubmit="return test()">
 15 <textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
 16 <input type="submit" name="Submit" value="check">
 17 </form> 
 18 
 19 2. 只能是汉字 
 20 <input onkeyup="value="/oblog/value.replace(/[^/u4E00-/u9FA5]/g,'')">
 21 
 22 3." 只能是英文
 23 <script language=javascript>
 24 function onlyEng()
 25 {
 26 if(!(event.keyCode>=65&&event.keyCode<=90))
 27 event.returnvalue=false;
 28 }
 29 </script>
 30 
 31 <input onkeydown="onlyEng();">
 32 
 33 4. 只能是数字
 34 <script language=javascript>
 35 function onlyNum()
 36 {
 37 if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
 38 //考虑小键盘上的数字键
 39 event.returnvalue=false;
 40 }
 41 </script>
 42 
 43 <input onkeydown="onlyNum();">
 44 
 45 5. 只能是英文字符和数字
 46 <input onkeyup="value="/oblog/value.replace(/[/W]/g,"'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))">
 47 
 48 6. 验证油箱格式
 49 <SCRIPT LANGUAGE=javascript RUNAT=Server>
 50 function isEmail(strEmail) {
 51 if (strEmail.search(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/) != -1)
 52 return true;
 53 else
 54 alert("oh");
 55 }
 56 </SCRIPT>
 57 <input type=text onblur=isEmail(this.value)>
 58 
 59 7. 屏蔽关键字(这里屏蔽***和****)
 60 <script language="javascript1.2">
 61 function test() {
 62 if((a.b.value.indexOf ("***") == 0)||(a.b.value.indexOf ("****") == 0)){
 63 alert(":)");
 64 a.b.focus();
 65 return false;}
 66 }
 67 </script>
 68 <form name=a onsubmit="return test()">
 69 <input type=text name=b>
 70 <input type="submit" name="Submit" value="check">
 71 </form>
 72 
 73 8. 两次输入密码是否相同
 74 <FORM METHOD=POST ACTION="">
 75 <input type="password" id="input1">
 76 <input type="password" id="input2">
 77 <input type="button" value="test" onclick="check()">
 78 </FORM>
 79 <script>
 80 function check()
 81 { 
 82 with(document.all){
 83 if(input1.value!=input2.value)
 84 {
 85 alert("false")
 86 input1.value = "";
 87 input2.value = "";
 88 }
 89 else document.forms[0].submit();
 90 }
 91 }
 92 </script>
 93 够了吧 :)
 94 屏蔽右键 很酷 
 95 oncontextmenu="return false" ondragstart="return false" onselectstart="return false"
 96 加在body中
 97 
 98 
 99 100 
101 2.1   表单项不能为空
102 
103 <script   language="javascript">
104 <!--
105 function   CheckForm()
106 {  
107 if   (document.form.name.value.length   ==   0)   {  
108 alert("请输入您姓名!");
109 document.form.name.focus();
110 return   false;
111 }
112 return   true;
113 }
114 -->
115 </script>
116 
117 2.2   比较两个表单项的值是否相同
118 
119 <script   language="javascript">
120 <!--
121 function   CheckForm()
122 if   (document.form.PWD.value   !=   document.form.PWD_Again.value)   {  
123 alert("您两次输入的密码不一样!请重新输入.");
124 document.ADDUser.PWD.focus();
125 return   false;
126 }
127 return   true;
128 }
129 -->
130 </script>
131 
132 2.3   表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等
133 
134 <script   language="javascript">
135 <!--
136 function   isNumber(String)
137 {  
138 var   Letters   =   "1234567890-";   //可以自己增加可输入值
139 var   i;
140 var   c;
141 if(String.charAt(   0   )=='-')
142 return   false;
143 if(   String.charAt(   String.length   -   1   )   ==   '-'   )
144 return   false;
145 for(   i   =   0;   i   <   String.length;   i   ++   )
146 {  
147 c   =   String.charAt(   i   );
148 if   (Letters.indexOf(   c   )   <   0)
149 return   false;
150 }
151 return   true;
152 }
153 function   CheckForm()
154 {  
155 if(!   isNumber(document.form.TEL.value))   {  
156 alert("您的电话号码不合法!");
157 document.form.TEL.focus();
158 return   false;
159 }
160 return   true;
161 }
162 -->
163 </script>
164 
165 
166 2.4   表单项输入数值/长度限定
167 
168 <script   language="javascript">
169 <!--
170 function   CheckForm()  
171 {  
172 if   (document.form.count.value   >   100   ||   document.form.count.value   <   1)
173 {  
174 alert("输入数值不能小于零大于100!");
175 document.form.count.focus();
176 return   false;
177 }
178 if   (document.form.MESSAGE.value.length<10)
179 {  
180 alert("输入文字小于10!");
181 document.form.MESSAGE.focus();
182 return   false;
183 }
184 return   true;
185 }
186 //-->
187 </script>
188 
189 2.5   中文/英文/数字/邮件地址合法性判断
190 
191 <SCRIPT   LANGUAGE="javascript">
192 <!--
193 
194 function   isEnglish(name)   //英文值检测
195 {  
196 if(name.length   ==   0)
197 return   false;
198 for(i   =   0;   i   <   name.length;   i++)   {  
199 if(name.charCodeAt(i)   >   128)
200 return   false;
201 }
202 return   true;
203 }
204 
205 function   isChinese(name)   //中文值检测
206 {  
207 if(name.length   ==   0)
208 return   false;
209 for(i   =   0;   i   <   name.length;   i++)   {  
210 if(name.charCodeAt(i)   >   128)
211 return   true;
212 }
213 return   false;
214 }
215 
216 function   isMail(name)   //   E-mail值检测
217 {  
218 if(!   isEnglish(name))
219 return   false;
220 i   =   name.indexOf("   at   ");
221 j   =   name   dot   lastIndexOf("   at   ");
222 if(i   ==   -1)
223 return   false;
224 if(i   !=   j)
225 return   false;
226 if(i   ==   name   dot   length)
227 return   false;
228 return   true;
229 }
230 
231 function   isNumber(name)   //数值检测
232 {  
233 if(name.length   ==   0)
234 return   false;
235 for(i   =   0;   i   <   name.length;   i++)   {  
236 if(name.charAt(i)   <   "0"   ||   name.charAt(i)   >   "9")
237 return   false;
238 }
239 return   true;
240 }
241 
242 function   CheckForm()
243 {  
244 if(!   isMail(form.Email.value))   {  
245 alert("您的电子邮件不合法!");
246 form.Email.focus();
247 return   false;
248 }
249 if(!   isEnglish(form.name.value))   {  
250 alert("英文名不合法!");
251 form.name.focus();
252 return   false;
253 }
254 if(!   isChinese(form.cnname.value))   {  
255 alert("中文名不合法!");
256 form.cnname.focus();
257 return   false;
258 }
259 if(!   isNumber(form.PublicZipCode.value))   {  
260 alert("邮政编码不合法!");
261 form.PublicZipCode.focus();
262 return   false;
263 }
264 return   true;
265 }
266 //-->
267 </SCRIPT>
268 
269 2.6   限定表单项不能输入的字符
270 
271 <script   language="javascript">
272 <!--
273 
274 function   contain(str,charset)//   字符串包含测试函数
275 {  
276 var   i;
277 for(i=0;i<charset.length;i++)
278 if(str.indexOf(charset.charAt(i))>=0)
279 return   true;
280 return   false;
281 }
282 
283 function   CheckForm()
284 {  
285 if   ((contain(document.form.NAME.value,   "%/(/)><"))   ||   (contain(document.form.MESSAGE.value,   "%/(/)><")))
286 {  
287 alert("输入了非法字符");
288 document.form.NAME.focus();
289 return   false;
290 }
291 return   true;
292 }
293 //-->
294 </script>  
295 
296 1. 检查一段字符串是否全由数字组成       
297 ---------------------------------------       
298 <script language="Javascript"><!--           
299 function checkNum(str){return str.match(//D/)==null}           
300 alert(checkNum("1232142141"))           
301 alert(checkNum("123214214a1"))           
302 // --></script>         
303       
304 2. 怎么判断是否是字符         
305 ---------------------------------------       
306 if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");          
307 else alert("全是字符");      
308            
309 3. 怎么判断是否含有汉字        
310 ---------------------------------------        
311 if (escape(str).indexOf("%u")!=-1) alert("含有汉字");         
312 else alert("全是字符");           
313     
314 4. 邮箱格式验证    
315 ---------------------------------------      
316 //函数名:chkemail     
317 //功能介绍:检查是否为Email Address     
318 //参数说明:要检查的字符串     
319 //返回值:0:不是 1:是     
320 function chkemail(a)     
321 { var i=a.length;     
322 var temp = a.indexOf('@');     
323 var tempd = a.indexOf('.');     
324 if (temp > 1) {     
325 if ((i-temp) > 3){     
326 if ((i-tempd)>0){     
327 return 1;     
328 }     
329     
330 }     
331 }     
332 return 0;     
333 }     
334     
335 5. 数字格式验证    
336 ---------------------------------------      
337 //函数名:fucCheckNUM     
338 //功能介绍:检查是否为数字     
339 //参数说明:要检查的数字     
340 //返回值:1为是数字,0为不是数字     
341 function fucCheckNUM(NUM)     
342 {     
343 var i,j,strTemp;     
344 strTemp="0123456789";     
345 if ( NUM.length== 0)     
346 return 0     
347 for (i=0;i<NUM.length;i++)     
348 {     
349 j=strTemp.indexOf(NUM.charAt(i));     
350 if (j==-1)     
351 {     
352 //说明有字符不是数字     
353 return 0;     
354 }     
355 }     
356 //说明是数字     
357 return 1;     
358 }     
359     
360 6. 电话号码格式验证    
361 ---------------------------------------      
362 //函数名:fucCheckTEL     
363 //功能介绍:检查是否为电话号码     
364 //参数说明:要检查的字符串     
365 //返回值:1为是合法,0为不合法     
366 function fucCheckTEL(TEL)     
367 {     
368 var i,j,strTemp;     
369 strTemp="0123456789-()# ";     
370 for (i=0;i<TEL.length;i++)     
371 {     
372 j=strTemp.indexOf(TEL.charAt(i));     
373 if (j==-1)     
374 {     
375 //说明有字符不合法     
376 return 0;     
377 }     
378 }     
379 //说明合法     
380 return 1;     
381 }    
382    
383 7. 判断输入是否为中文的函数   
384 ---------------------------------------      
385 function ischinese(s){   
386 var ret=true;   
387 for(var i=0;i<s.length;i++)   
388 ret=ret && (s.charCodeAt(i)>=10000);   
389 return ret;   
390 }    
391    
392 8. 综合的判断用户输入的合法性的函数  
393 ---------------------------------------      
394 <script language="javascript">  
395 //限制输入字符的位数开始  
396 //m是用户输入,n是要限制的位数  
397 function issmall(m,n)  
398 {  
399 if ((m<n) && (m>0))  
400    {  
401    return(false);  
402    }  
403 else  
404 {return(true);}  
405 }  
406   
407 9. 判断密码是否输入一致  
408 ---------------------------------------      
409 function issame(str1,str2)  
410 {  
411 if (str1==str2)  
412 {return(true);}  
413 else  
414 {return(false);}  
415 }  
416   
417 10. 判断用户名是否为数字字母下滑线 
418 ---------------------------------------      
419 function notchinese(str){ 
420 var reg=/[^A-Za-z0-9_]/g 
421      if (reg.test(str)){ 
422      return (false); 
423      }else{ 
424 return(true);     } 
425 } 
426 
427 11. form文本域的通用校验函数
428 ---------------------------------------      
429 作用:检测所有必须非空的input文本,比如姓名,账号,邮件地址等等。
430 该校验现在只针对文本域,如果要针对form里面的其他域对象,可以改变判断条件。
431 
432 使用方法:在要检测的文本域中加入title文字。文字是在提示信息,你要提示给用户的该字段的中文名。比如要检测用户名
433 html如下<input name="txt_1" title="姓名">,当然,最好用可视化工具比如dreamweaver什么的来编辑域。
434 如果要检测数字类型数据的话,再把域的id统一为sz.
435 javascript判断日期类型比较麻烦,所以就没有做日期类型校验的程序了.高手可以补充。
436 
437 程序比较草,只是提供一个思路。抛砖引玉! :)
438 哦,对了,函数调用方法:< form   onsubmit="return dovalidate()">
439 
440 function dovalidate()
441 {
442 fm=document.forms[0] //只检测一个form,如果是多个可以改变判断条件
443      for(i=0;i<fm.length;i++)
444      {  
445      //检测判断条件,根据类型不同可以修改
446      if(fm[i].tagName.toUpperCase()=="INPUT" &&fm[i].type.toUpperCase()=="TEXT" && (fm[i].title!=""))
447     
448           if(fm[i].value="/blog/="")//
449           {
450           str_warn1=fm[i].title+"不能为空!";
451           alert(str_warn1);
452          fm[i].focus();
453           return false;         
454           }
455           if(fm[i].id.toUpperCase()=="SZ")//数字校验
456           {
457                   if(isNaN(fm[i].value))
458                  { str_warn2=fm[i].title+"格式不对";
459                  alert(str_warn2);
460                  fm[i].focus();
461                   return false;
462                   }
463          }
464      }
465      return true;
466 }
467 
468 
469 2 >表单提交验证类 
470 
471 
472 2.1 表单项不能为空
473 
474 <script language="javascript">
475 <!--
476 function CheckForm()
477 { 
478 if (document.form.name.value.length == 0) { 
479 alert("请输入您姓名!");
480 document.form.name.focus();
481 return false;
482 }
483 return true;
484 }
485 -->
486 </script>
487 
488 2.2 比较两个表单项的值是否相同
489 
490 <script language="javascript">
491 <!--
492 function CheckForm()
493 if (document.form.PWD.value != document.form.PWD_Again.value) { 
494 alert("您两次输入的密码不一样!请重新输入.");
495 document.ADDUser.PWD.focus();
496 return false;
497 }
498 return true;
499 }
500 -->
501 </script>
502 
503 2.3 表单项只能为数字和"_",用于电话/银行帐号验证上,可扩展到域名注册等
504 
505 <script language="javascript">
506 <!--
507 function isNumber(String)
508 { 
509 var Letters = "1234567890-"; //可以自己增加可输入值
510 var i;
511 var c;
512 if(String.charAt( 0 )=='-')
513 return false;
514 if( String.charAt( String.length - 1 ) == '-' )
515 return false;
516 for( i = 0; i < String.length; i ++ )
517 { 
518 c = String.charAt( i );
519 if (Letters.indexOf( c ) < 0)
520 return false;
521 }
522 return true;
523 }
524 function CheckForm()
525 { 
526 if(! isNumber(document.form.TEL.value)) { 
527 alert("您的电话号码不合法!");
528 document.form.TEL.focus();
529 return false;
530 }
531 return true;
532 }
533 -->
534 </script>
535 
536 
537 2.4 表单项输入数值/长度限定
538 
539 <script language="javascript">
540 <!--
541 function CheckForm() 
542 { 
543 if (document.form.count.value > 100 || document.form.count.value < 1)
544 { 
545 alert("输入数值不能小于零大于100!");
546 document.form.count.focus();
547 return false;
548 }
549 if (document.form.MESSAGE.value.length<10)
550 { 
551 alert("输入文字小于10!");
552 document.form.MESSAGE.focus();
553 return false;
554 }
555 return true;
556 }
557 //-->
558 </script>
559 
560 2.5 中文/英文/数字/邮件地址合法性判断
561 
562 <SCRIPT LANGUAGE="javascript">
563 <!--
564 
565 function isEnglish(name) //英文值检测
566 { 
567 if(name.length == 0)
568 return false;
569 for(i = 0; i < name.length; i++) { 
570 if(name.charCodeAt(i) > 128)
571 return false;
572 }
573 return true;
574 }
575 
576 function isChinese(name) //中文值检测
577 { 
578 if(name.length == 0)
579 return false;
580 for(i = 0; i < name.length; i++) { 
581 if(name.charCodeAt(i) > 128)
582 return true;
583 }
584 return false;
585 }
586 
587 function isMail(name) // E-mail值检测
588 { 
589 if(! isEnglish(name))
590 return false;
591 i = name.indexOf(" at ");
592 j = name dot lastIndexOf(" at ");
593 if(i == -1)
594 return false;
595 if(i != j)
596 return false;
597 if(i == name dot length)
598 return false;
599 return true;
600 }
601 
602 function isNumber(name) //数值检测
603 { 
604 if(name.length == 0)
605 return false;
606 for(i = 0; i < name.length; i++) { 
607 if(name.charAt(i) < "0" || name.charAt(i) > "9")
608 return false;
609 }
610 return true;
611 }
612 
613 function CheckForm()
614 { 
615 if(! isMail(form.Email.value)) { 
616 alert("您的电子邮件不合法!");
617 form.Email.focus();
618 return false;
619 }
620 if(! isEnglish(form.name.value)) { 
621 alert("英文名不合法!");
622 form.name.focus();
623 return false;
624 }
625 if(! isChinese(form.cnname.value)) { 
626 alert("中文名不合法!");
627 form.cnname.focus();
628 return false;
629 }
630 if(! isNumber(form.PublicZipCode.value)) { 
631 alert("邮政编码不合法!");
632 form.PublicZipCode.focus();
633 return false;
634 }
635 return true;
636 }
637 //-->
638 </SCRIPT>
639 
640 2.6 限定表单项不能输入的字符
641 
642 <script language="javascript">
643 <!--
644 
645 function contain(str,charset)// 字符串包含测试函数
646 { 
647 var i;
648 for(i=0;i<charset.length;i++)
649 if(str.indexOf(charset.charAt(i))>=0)
650 return true;
651 return false;
652 }
653 
654 function CheckForm()
655 { 
656 if ((contain(document.form.NAME.value, "%/(/)><")) || (contain(document.form.MESSAGE.value, "%/(/)><")))
657 { 
658 alert("输入了非法字符");
659 document.form.NAME.focus();
660 return false;
661 }
662 return true;
663 }
664 //-->
665 </script> 
666  

 

posted on 2013-01-07 12:56  anqli  阅读(146)  评论(0)    收藏  举报