JS——简单的正则表达式验证
<!-- 用户注册:结构层:html;表现层:css;行为层:javascript;
html利用ul,li来构造:
注意事项:1、每个Input都要有相应的id,这是在js中去调用的。
2、<a href="javascript:void(0)"></a>,添加javascript:void(0)是为了阻止链接的跳转。
行为层:js
js编写的主体思路:1、中心点:每一个input框,也就是获取的inp=document.getElementsByTagName("input");
2、针对input输入框会有点击即获得焦点的状态,和失去焦点的状态。
3、当获得焦点的时候,会给用户名、输入框、提示图标(改变背景图片的位置)变成蓝色,即添加point样式。
4、当input输入框失去焦点时,会给用户名、输入框、提示图标变成红色,即添加error样式。
5、当input输入框内容正确后,会给用户名、输入框变成-->。
zhuye
<body> <div id="reg"> <form> <div class="reg_title"><h1>用户注册</h1></div> <ul class="reg_con"> <li> <ul class="def"> <li><span>用户帐号:</span><input type="text" id="uname"/></li> <li><p><i></i>给自己起个名字吧,它将成为您登录本站的用户名</p></li> </ul> </li> <li> <ul class="def"> <li><span>电子邮箱:</span><input type="text" id="email"/></li> <li><p><i></i>请输入您的常用邮箱地址,此邮箱地址将作为修改密码</p></li> </ul> </li> <li> <ul class="def"> <li><span>手机号码:</span><input type="text" id="mobile"/></li> <li><p><i></i>请输入您的手机号码,方便我们之间的联系</p></li> </ul> </li> <li> <ul class="def"> <li><span>安全密码:</span><input id="pwd" type="password"/></li> <li><p><i></i>请输入安全密码,它将作为您的登录密码</p></li> </ul> </li> <li> <ul class="def "> <li><span>确认密码:</span><input type="password" id="qrpwd"/></li> <li><p><i></i>请将上面的密码再输入一次</p></li> </ul> </li> <li> <ul> <li><span></span></li> <li id="reg_sub"><a href="javascript:void(0)" id="enter">立即注册</a></li> </ul> </li> </ul> </form> </div> </body>
css
<style> html,body,h1,h2,h3,h4,h5,h6,div,ul,ol,li,dl,dt,dd,iframe,textarea,input,button,p,strong,b,a,span,del,pre,table,tr,th,td{margin:0; padding:0; -webkit-text-size-adjust:none;} h1,h2,h3,h4,h5,h6,em,del{font-style:normal; font-weight:normal; font-size:100%; -webkit-text-size-adjust:none;} label,input,textarea{outline:none;} ul{list-style:none;} a{text-decoration:none;} .cl{zoom:1} .cl:after{ display:block; visibility:hidden; content:""; clear:both; overflow:hidden; } body{ background:#DEEBF4 url(http://www.w3cfuns.com/data/attachment/album/201405/21/173823uwzw6d5rgd2xwdd8.jpg) no-repeat top center ; margin:0 auto; font-family:Microsoft YaHei, Arial, Helvetica, sans-serif; } #reg{ width:770px; background:#fff; border-radius:5px; -webkit-border-radius:5px; -moz-border-radius:5px; margin:85px auto; overflow:hidden; } .reg_title{ font-size:24px; text-align:center; border-bottom:1px dashed #ccc; padding:15px 0; margin:0 10px; } .reg_con{ margin:20px 10px; overflow:hidden; } .reg_con li ul { margin:5px 0; float:left; width:100%; line-height:35px; } .reg_con li ul li{ float:left; } .reg_con li ul li span{ font-size:14px; } .reg_con li ul li input{ height:25px; width:300px; border:1px solid #666; } .reg_con li ul li p{ color:#999; font-size:12px; position:relative; padding-left:20px; } .reg_con li ul li p i{ width:16px; height:16px; display:block; position:absolute; left:0; top:10px; background:url(http://www.w3cfuns.com/data/attachment/album/201405/21/173824rvf1jjbs6j9ovisw.png.thumb.jpg) no-repeat 0 0; display:none; } .reg_con li ul.def li span{ font-size:14px; } .reg_con li ul.def li input{ height:25px; width:300px; margin-right:20px; } .reg_con li ul.def li p{ color:#333; font-size:12px; } .reg_con li ul.point li span{ font-size:14px; color:#00f; } .reg_con li ul.point li input{ height:25px; width:300px; margin-right:20px; border:1px solid #00f; } .reg_con li ul.point li p{ font-size:12px; } .reg_con li ul.point li p i{ display:block; } .reg_con li ul.error li span{ font-size:14px; color:#f00; } .reg_con li ul.error li input{ height:25px; width:300px; margin-right:20px; border:1px solid #f00; } .reg_con li ul.error li p{ font-size:12px; padding-left:20px; } .reg_con li ul.error li p i{ background-position:0 -16px; display:block; } .reg_con li ul.ok li input{ height:25px; width:300px; margin-right:20px; border:1px solid #999; color:#999; } .reg_con li ul.ok li p i{ background-position:0 -32px; display:block; } #reg_sub{text-align:center;margin:0 auto;margin-left:10%;} #reg_sub a{ border:1px solid #0066bb; color:#ccc; background:#0055AA; padding:5px 20px; } #reg_sub a:hover{ background:#0066bb; color:#fff; } </style>
<script type="text/javascript"> /*闭包*/ ( function(){ var $=function(_id){ return document.getElementById(_id); } var inpStyle=function(){ var inp=document.getElementsByTagName("input");//获得id为inpList 中的所有的input for(i=0;i<inp.length;i++){ inp[i].onfocus=function(){ var par=this.parentNode.parentNode; var msg=par.getElementsByTagName("p")[0]; par.className="point"; check.focus[this.id](par,this,msg); } inp[i].onblur=function(){ var par=this.parentNode.parentNode; var msg=par.getElementsByTagName("p")[0]; par.className="def"; check.blurs[this.id](par,this,msg); } } $("enter").onclick=function(){ subback(inp); } } var check={ focus:{ uname:function(_ul,_this,_p){ _ul.className="point"; _p.innerHTML="<i></i>给自己起个名字吧,它将成为您登录本站的用户名"; }, email:function(_ul,_this,_p){ _ul.className="point"; _p.innerHTML="<i></i>请输入您的常用邮箱地址,此邮箱地址将作为修改密码"; }, mobile:function(_ul,_this,_p){ _ul.className="point"; _p.innerHTML="<i></i>请输入您的手机号码,方便我们之间的联系"; }, pwd:function(_ul,_this,_p){ _ul.className="point"; _p.innerHTML="<i></i>请输入安全密码,它将作为您的登录密码"; }, qrpwd:function(_ul,_this,_p){ _ul.className="point"; _p.innerHTML="<i></i>请将上面的密码再输入一次"; } }, blurs:{ uname:function(_ul,_this,_p){//ul标签、当前输入框、错误的信息 _ul.className="error"; var flag=false; if(_this.value==""){ _p.innerHTML="<i></i>用户名不能为空!"; }else if(_this.value.length<3 || _this.value.length>16){ _p.innerHTML="<i></i>用户名长度应控制在3-16位字符之间!"; }else if(!/^[\w_-\u4e00-\u9fa5]+$/.test(_this.value)){ _p.innerHTML = "<i></i>用户名只能由大小写字母,数字,下划线,中横线和中文组成!"; }else{ _ul.className="ok"; _p.innerHTML="<i></i>"; flag=true; } return flag; }, email:function(_ul,_this,_p){ _ul.className="error"; var flag=false; if(_this.value==""){ _p.innerHTML="<i></i>邮箱不能为空!"; }else if(!/\w+((-w+)|(\.\w+))*\@[\w]+((\.|-)[\w]+)*\.[\w]+/.test(_this.value)){ _p.innerHTML="<i></i>请输入正确的邮箱地址!"; } else{ _ul.className="ok"; _p.innerHTML="<i></i>"; flag=true; } return flag=false; } , mobile:function(_ul,_this,_p){ _ul.className="error"; var flag=false; if(_this.value==""){ _p.innerHTML="<i></i>电话号码不能为空!"; }else if(!/0?(13|14|15|18)[0-9]{9}/.test(_this.value)){ _p.innerHTML="<i></i>请输入正确的电话号码!"; } else{ _ul.className="ok"; _p.innerHTML="<i></i>"; flag=true; } return flag; } , pwd:function(_ul,_this,_p){ _ul.className="error"; var flag=false; if(_this.value==""){ _p.innerHTML="<i></i>密码不能为空!"; }else if(_this.value.length<6 || _this.value.length>16){ _p.innerHTML="<i></i>密码应该在6-16位之间!"; }else if(!/^[\w_-]+$/.test(_this.value)){ _p.innerHTML="<i></i>密码只能由大小字母、数字、下划线组成!"; } else{ _ul.className="ok"; _p.innerHTML="<i></i>"; flag=true; } return flag; } , qrpwd:function(_ul,_this,_p){ _ul.className="error"; var flag=false; if(_this.value==""){ _p.innerHTML="<i></i>为了保证您输入的密码准确无误,请再次输入密码!!"; }else if(_this.value!=$("pwd").value){ _p.innerHTML="<i></i>密码两次输入不一致,请重新输入!"; } else{ _ul.className="ok"; _p.innerHTML="<i></i>"; flag=true; } return flag; } } } var subback=function(inps){ for(var i=0;i<inps.length;i++){ //inps[i].focus(); var flag=true; var par=inps[i].parentNode.parentNode; var msg=par.getElementsByTagName("p")[0]; if(!check.blurs[inps[i].id](par,inps[i],msg)){ flag=false; break; } } if(flag){ alert("可提交"); } else{ alert("不可提交"); } } window.onload=function(){//相当于程序的入口 main方法 inpStyle(); } } )(); </script>