四.js 正則表達式

一。正則表達式
  1.定義:對字符串規則的描述
  2.做用:能夠檢查字符串是否符合規則,能夠按規則來截取字符串
  3.定義:
    a。簡單模式:var reg = /hello/;
    b.複雜模式:var reg = /^規則$/;
  4.具體規則:
    元字符:
      \d:表示一個數字。[0-9];
      \D:表示一個非數字。[^0-9];
      \s:表示一個空白字符
      \S:表示一個非空白字符
      \w:匹配一個字母或者數字或者下劃線 [A-Za-z_]
      \W:和\w相反
      [xyz]:匹配集合中任意一個字符
    匹配次數元字符:
      *:表示任意次數
      +:1次或者屢次 {1,}
      ?:0次或者1次
      {n}:表示匹配n次
      {n,m}:表示匹配大於等於n,小於等於m次
  5.檢驗字符串是否符合規則:
    reg.test("字符串")  返回boolean類型javascript

 

 練習:html

  生日:1999-11-11
  g.身份證號碼:18位,最後一位能夠是數字或者X
  h.用戶名:用戶名必須包含數字,字母,下劃線。首字母大寫,長度不能小於8位
  f.日期:格式必須知足1999-12-31 24:60:60java

實例1:正則表達式

  普通方式驗證表單數據this

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <script type="text/javascript">
 8     /**
 9      * 1.要求全部輸入不能爲空
10      * 2.密碼長度爲固定6位,確認密碼和密碼必須一致
11      * 3.電子郵箱必須出現.和@符號,而且.在@符號後面
12      * 筆記:js的表單驗證
13      * 1.什麼是表單驗證
14      * 2.驗證的步驟
15      * 3.關鍵:如何阻止表單提交
16      */
17     function check() {
18         var username = document.getElementById("username").value;
19         var password = document.getElementById("password").value;
20         var password2 = document.getElementById("password2").value;
21         var email = document.getElementById("email").value;
22         if(username==""||username.length>10){
23             document.getElementById("error_username").innerHTML="用戶名不能爲空且長度不能大於10";
24             return false;
25         }else{
26             document.getElementById("error_username").innerHTML="";
27         }
28         if(password.length!=6){
29             document.getElementById("error_password").innerHTML="密碼不能爲空且長度固定爲6";
30             return false;
31         }else{
32             document.getElementById("error_password").innerHTML="";
33         }
34         if(password!=password2){
35             document.getElementById("error_password2").innerHTML="確認密碼和密碼一致";
36             return false;
37         }else{
38             document.getElementById("error_password2").innerHTML="";
39         }
40         if(!(email.indexOf("@")>0&&email.indexOf(".")>email.indexOf("@"))){
41             alert("郵箱格式不正確");
42             return false;
43         }
44 
45         return true;
46     }
47 </script>
48 <body>
49     <div align="center">
50         <form action="http://www.baidu.com" onsubmit="return check()">
51             用戶名:<input id="username" onblur="check()"><span id="error_username" style="color: red;"></span><br>
52             密碼:<input id="password" type="password" onblur="check()"><span id="error_password" style="color: red;"></span><br>
53             確認密碼:<input id="password2" type="password" onblur="check()"><span id="error_password2" style="color: red;"></span><br>
54             生日:<input type="date"><br>
55             電話:<input><br>
56             電子郵箱:<input id="email" onblur="check()"><span id="error_email" style="color: red;"></span><br>
57             所在地:<input><br>
58             <input type="submit" value="註冊">
59         </form>
60     </div>
61 </body>
62 </html>

  利用正則表達式驗證表單數據及其餘綁定事件spa

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>Title</title>
  6 </head>
  7 <script type="text/javascript">
  8     /**
  9      * 1.要求全部輸入不能爲空
 10      * 2.密碼長度爲固定6位,確認密碼和密碼必須一致
 11      * 3.電子郵箱必須出現.和@符號,而且.在@符號後面
 12      * 筆記:js的表單驗證
 13      * 1.什麼是表單驗證
 14      * 2.驗證的步驟
 15      * 3.關鍵:如何阻止表單提交
 16      */
 17     function checkUsername() {
 18         var username = document.getElementById("username").value;
 19         if(username==""||username.length>10){
 20             document.getElementById("error_username").innerHTML="用戶名不能爲空且長度不能大於10";
 21             return false;
 22         }else{
 23             document.getElementById("error_username").innerHTML="";
 24         }
 25         return true;
 26     }
 27     function checkPassword() {
 28         var password = document.getElementById("password").value;
 29         if(password.length!=6){
 30             document.getElementById("error_password").innerHTML="密碼不能爲空且長度固定爲6";
 31             return false;
 32         }else{
 33             document.getElementById("error_password").innerHTML="";
 34             return true;
 35         }
 36     }
 37     function checkPassword2() {
 38         var password = document.getElementById("password").value;
 39         var password2 = document.getElementById("password2").value;
 40         if(password!=password2){
 41             document.getElementById("error_password2").innerHTML="確認密碼和密碼一致";
 42             return false;
 43         }else{
 44             document.getElementById("error_password2").innerHTML="";
 45             return true;
 46         }
 47     }
 48     function checkEmail() {
 49         var email = document.getElementById("email").value;
 50         if(!(email.indexOf("@")>0&&email.indexOf(".")>email.indexOf("@"))){
 51             alert("郵箱格式不正確");
 52             return false;
 53         }else{
 54             return true;
 55         }
 56     }
 57     function checkAll() {
 58         if(checkUsername()&&checkPassword()&&checkPassword2()&&checkEmail()){
 59             return true;
 60         }else{
 61             return false;
 62         }
 63     }
 64     function checkAddr() {
 65         var addr = document.getElementById("addr").value;
 66         //聲明正則表達式
 67         var reg = /中國/;
 68         var reg2 = new RegExp("/中國/");
 69         var reg3 = /^[12]\d{3}-([1-9]|[0][1-9]|[1][0-2])$/;
 70 
 71         /**
 72          * 生日:1999-12-11
 73          g.身份證號碼:18位,最後一位能夠是數字或者X
 74          h.用戶名:用戶名必須包含數字,字母,下劃線。首字母大寫,長度不能小於8位
 75          f.日期:格式必須知足1999-12-31 24:60:60
 76          * @type {boolean}
 77          */
 78         document.getElementById("error_addr").innerHTML = reg3.test(addr);
 79     }
 80     function showValue(obj) {
 81         alert(obj.value);
 82     }
 83     function readey() {
 84         document.getElementById("username").addEventListener("keyup",function (e) {
 85             alert(e.keyCode);
 86         });
 87         document.getElementById("mydiv").addEventListener("mousemove",function (e) {
 88             document.getElementById("showPoint").innerHTML="x:"+e.x+"y:"+e.y;
 89         });
 90     }
 91     function showDiv() {
 92         document.getElementById("mydiv").style.display="block";
 93     }
 94 </script>
 95 <body onload="readey()">
 96     <div align="center">
 97         <form action="http://www.baidu.com" onsubmit="return checkAll()">
 98             用戶名:<input id="username" onblur="checkUsername()"><span id="error_username" style="color: red;"></span><br>
 99             密碼:<input id="password" type="password" onblur="checkPassword()"><span id="error_password" style="color: red;"></span><br>
100             確認密碼:<input id="password2" type="password" onblur="checkPassword2()"><span id="error_password2" style="color: red;"></span><br>
101             生日:<input type="date"><br>
102             電話:<input><br>
103             電子郵箱:<input id="email" onblur="checkEmail()"><span id="error_email" style="color: red;"></span><br>
104             所在地:<input id="addr" onblur="checkAddr()"><span id="error_addr" style="color: red;"></span><br>
105             年份:<select onchange="showValue(this)">
106             <option value="1999年">1999</option>
107             <option>2000</option>
108             <option>2001</option>
109             <option>2002</option>
110         </select>
111             <input type="submit" value="註冊">
112         </form>
113     </div>
114     <div style="height: 400px;width: 400px;background-color: #b6ff7e;display: none" id="mydiv"></div>
115     <div id="showPoint"><a href="javascript:showDiv()">滾出來</a></div>
116 </body>
117 </html>

  結果code

相關文章
相關標籤/搜索