JavaScript正则RegExp验证表单输入框并提示
用1-5序号标注代码逻辑顺序,用注释讲解代码运行用途,如有错误欢迎指正。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <!doctype html> <html> <head>   <meta charset="UTF-8">   <title>Document</title>   <style>     .ok{color:green}     .err{color:red}     .hidden{display:none}   </style> </head> <body> <form>     密码:<input id="upwd" type="password">     <span id="msgUpwd" class="hidden">必须6位数字</span><br>     生日:<input id="birth">     <span id="msgBirth" class="hidden">必须符合日期格式</span><br>     身份证号:<input id="pid">     <span id="msgPid" class="hidden">必须符合身份证号格式规范</span><br>     手机号:<input id="mobile">     <span id="msgMobile" class="hidden">必须符合手机号格式规则</span><br>     邮箱:<input id="email">     <span id="msgEmail" class="hidden">必须符合邮箱格式规则</span><br>     qq:<input id="qq">     <span id="msgQQ" class="hidden">必须符合qq号格式规范</span><br>     <input id="btnSubmit" type="button" value="提交">   </form>   <script>     //4、通过失去焦点时获取的4个数据,进行reg.test(正则.test)判断数据格式并返回状态     function vali(elem,reg,msgSpan,errMsg){       if(reg.test(elem.value)){//如果验证通过         msgSpan.innerHTML="格式正确!";         msgSpan.className="ok";         return true;       }else{//否则         msgSpan.innerHTML=errMsg;         msgSpan.className="err";         return false;       }     }     function bind(elem,reg,msgSpan,errMsg){       //2、当密码框获得焦点时,通过bind传来的4个数据,对应的显示内容       elem.onfocus=function(){         msgSpan.className="";         msgSpan.innerHTML=errMsg;       };       //3、当密码框失去焦点时,调用vali函数,并传入从bind函数传来的4个数据       elem.onblur=       elem.onkeyup=function(){         vali(elem,reg,msgSpan,errMsg)       }     }     //1、一开始,就首先就往bind函数中传入对应的4个属性。     bind(upwd,/^\d{6}$/,msgUpwd,"必须是6位数字");  //获得焦点就会显示提示     bind(       birth,       /^\d{4}\/\d{2}\/\d{2}$/,       msgBirth,       "必须符合日期格式"     );     bind(       pid,       /^\d{15}(\d{2}[0-9Xx])?$/,       msgPid,       "必须符合身份证号格式"     );     //5、按下提交按钮,再次获取4个数据,并通过返回的状态,全通过才能下一步。     btnSubmit.onclick=function(){       var rUpwd=vali(upwd,/^\d{6}$/,msgUpwd,"请输入6位数字");  //错误时提交会显示提示       var rBirth=vali(birth,/^\d{4}\/\d{2}\/\d{2}$/,msgBirth,"必须符合日期格式");       var rPid=vali(pid,/^\d{15}(\d{2}[0-9Xx])?$/,msgPid,"必须符合身份证号格式");       if(rUpwd&&rBirth&&rPid)         alert("提交成功!");     }   </script> </body> </html> | 
        THE END
    
        
        





