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