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
浙公网安备 33010602011771号