zoukankan      html  css  js  c++  java
  • 正则表达式---用户验证

    一:正则表达式:

           是一种特殊的字符串模式,用于匹配一组字符串,定义一种规则去匹配一组符合规格的字符;

    常用的正则匹配工具 

         在线匹配工具:

      1 http://www.regexpal.com/ 

          2 http://rubular.com/ 

         正则匹配软件

          McTracer 

    正则字符:

                   "^" 匹配字符串起始位置

                   “$” 结束位置

                  “w” 匹配字母,数字,下划线

                  “.” 匹配换行以外的任何字符

                  “[abc]”字符组 匹配包含括号内元素的符号

                  “s”匹配空格

                 “d”匹配数字

    写法改成大写就是反义

                "W"   匹配任意不是字母,数字,下划线 的字符

                    "S"   匹配任意不是空白符的字符

                  "D"  匹配任意非数字的字符

                   "B"  匹配不是单词开头或结束的位置

                  "[^abc]"  匹配除了abc以外的任意字符

     量词:

    “*”   重复0次或更多次

    “+”   重复1次或更多次

    “?”  重复0次或一次

    “{n}” 重复n次

    “{n,m}”  重复n次到m次  包括临界值

    “{n,}” 重复n次或多次

    捕获分组

             先了解在正则中捕获分组的概念,其实就是一个括号内的内容 如 "(d)d" 而"(d)" 这就是一个捕获分组,可以对捕获分组进行 后向引用 (如果后而有相同的内容则可以直接引用前面定义的捕获组,以简化表达式) 如(d)d1 这里的"1"就是对"(d)"的后向引用

                   那捕获分组有什么用呢看个例子就知道了

                   如  "zery zery" 正则 (w+)s1 所以这里的"1"所捕获到的字符也是 与(w+)一样的"zery",为了让组名更有意义,组名是可以自定义名字的

                        "(?<name>w+)sk<name>" 用"?<name>"就可以自定义组名了而要后向引用组时要记得写成 "k<name>";自定义组名后,捕获组中匹配到的值就会保存在定义的组名里

              下面列出捕获分组常有的用法

               "(exp)"    匹配exp,并捕获文本到自动命名的组里

               "(?<name>exp)"   匹配exp,并捕获文本到名称为name的组里

               "(?:exp)"  匹配exp,不捕获匹配的文本,也不给此分组分配组号

              以下为零宽断言

               "(?=exp)"  匹配exp前面的位置

                  如 "How are you doing" 正则"(?<txt>.+(?=ing))" 这里取ing前所有的字符,并定义了一个捕获分组名字为 "txt" 而"txt"这个组里的值为"How are you do";

              "(?<=exp)"  匹配exp后面的位置

                  如 "How are you doing" 正则"(?<txt>(?<=How).+)" 这里取"How"之后所有的字符,并定义了一个捕获分组名字为 "txt" 而"txt"这个组里的值为" are you doing";

             "(?!exp)"  匹配后面跟的不是exp的位置

                  如 "123abc" 正则 "d{3}(?!d)"匹配3位数字后非数字的结果

             "(?<!exp)"  匹配前面不是exp的位置

                  如 "abc123 " 正则 "(?<![0-9])123" 匹配"123"前面是非数字的结果也可写成"(?!<d)123"

     正则验证邮箱  用户  姓名   密码

    <style type="text/css">
           #container{
             width:700px;
             margin:0px auto;
           } 
           form{
               margin:0px auto;
               width:450px;
           }
        </style>
        <script src="js/jQuery1.11.1.js"></script>
        <script type="text/javascript">
           //用户名验证
           function checkUserName(){
         
             //2.获取用户输入的用户名
                 var username=$("[name=txtName]");
                 var unameValue=username.val();
                 //1.1 锁定到消息框
                       var userMsg=$("#userMsg");
                 if (unameValue=="") {
                 
                    //给消息框添加 提示消息
                  
                    //1.2html属性赋值
                    userMsg.html("用户名不能为空");
                    return false;
                 }
                 userMsg.html("");
                 return true;
           }
           
           
           //用户名验证
           function checkPassword(){
           
             //2.获取用户输入的密码
                 var pwd=$("[name=txtPwd]").val();
                 var pwdMsg=$("#pwdMsg");
                 if (pwd=="") {
                    //1.2html属性赋值
                    pwdMsg.html("密码不能为空");
                    return false;
                 }
                 
                 if(pwd.length<6||pwd.length>12){
                   
                    pwdMsg.html("密码长度需要保证在6---12位之间");
                    return false;
                 }
                 pwdMsg.html("");
                 return true;
           }
        
        
        
          //检测邮箱
          function checkEmail(){
            var reg=/^w+@w+.w+$/;
            var email=$("[name=txtEmail]").val();
            var result=reg.test(email);
            if(!result){
               //邮箱不合法
               $("#emailMsg").html("邮箱不合法");
               return false;
            }
            $("#emailMsg").html("");
            return true;
          }
        
           $(function(){
           
               //当用户名失去焦点的时候,也要验证
               var username=$("[name=txtName]");
               username.blur(function(){
                  checkUserName();
               });
               
               var pwd=$("[name=txtPwd]");
               pwd.blur(function(){
                  checkPassword();
               });
               
                var email=$("[name=txtEmail]");
                email.blur(function(){
                   checkEmail();
                });
           
               //用户没有输入,不能提交
               //1.点击登录      触发的是表单的submit事件
               
               $("#form1").submit(function(){
                   //1    三师兄    pass
                   //2    二师兄    pass
                   //3    大师兄    pass
                   var sum=0;
                   if (!checkUserName()) {
                      sum=sum+1;
                   }              
                   
                   if (!checkPassword()) {
                      sum=sum+1;
                   }  
                   
                   if(!checkEmail()){
                       sum=sum+1;
                   }
                   
                   if(sum==0){
                     return true;
                   }else{
                     return false;
                   }
                   
               });
           });
        </script>
        
        
    </head>
    <body>
        <div  id="container">
           <form action="Success.html" id="form1"method="get">
                用户名:<input type="text"  name="txtName"/>  <span id="userMsg"></span><br />
                密码:<input type="password" name="txtPwd" /><span id="pwdMsg"></span><br />
                邮箱:<input type="text" name="txtEmail" /><span id="emailMsg"></span><br />
            <input type="submit" value="Login" />
        </form>
        </div>
        
    </body>
    </html>

    简单的正则规定邮箱符

                 * 邮编:6位  d{6}
       
                 * 11位的手机号  d{11}  yymqqc@126.com.cn.net.org
       
                 * 邮箱: w+@w+(.w+){1,4}
       
                 * 验证Email地址:"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"。

                 $(function() {
                           var reg = /^d{6}$/;
                           var email = $("#email").val();
                           var flag = reg.test(email);
                      if (flag) {
                           alert('合法邮编');
                      } else {
                          alert('不合法邮编');
                      }
                 });
          

     

     

     

  • 相关阅读:
    第十五周总结
    第二阶段冲刺
    课堂练习
    第十四周总结
    WP8 NavigationInTransition实现页面切换效果
    WP8学习笔记:如何在页面显示前自动转向到其他页面
    WP8简单的计算器
    WP8滑动条(Slider)控件的使用
    Wp8滚动区域(ScrollViewer)控件的使用
    C#中ToString格式大全
  • 原文地址:https://www.cnblogs.com/chengzixin/p/6485009.html
Copyright © 2011-2022 走看看