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>

 

posted on 2016-03-08 09:32  Chen_s  阅读(386)  评论(0编辑  收藏  举报

导航