js的正則表達式

一、正則定義

正則表達式:js中用來匹配斷定字符串是否合法的工具

有兩種定義方式:html

  • 1直接用//定義:var reg1 = /[0-9a-zA-Z]/i;
  • 2用RegExp方式定義:var reg2 = new RegExp('[0-9a-zA-z]', 'i');

其中[0-9a-zA-Z]爲字符串匹配規則,i爲修飾符。正則表達式

二、正則符號

  • ^:以...開頭 ^\d:以數字開頭
  • $:以...結尾 \d$:以數字結尾
  • ?:表示匹配0個或1個
  • +:表示匹配至少1個
  • *:表示匹配任意個
  • {x}:表示匹配x個
  • {x,y}:表示匹配x到y個,最少x個,最多y個
  • {x,}:表示匹配至少x個起

三、匹配規則

  • [0-9]:查找0~9之間的數字
  • [0-9a-z]:查找0-9或a-z之間的字符
  • .:表示匹配任何一個字符(包括0)
  • \d:表示匹配數字
  • \w:匹配一個字母或數字
  • i,g,m:修飾符,i:忽視大小寫,g:全局匹配,m:多行匹配

四、正則可用於那些方法

  • test():Reg.test(String),返回true或false表示是否匹配
  • match():String.match(Reg),返回一個或多個匹配的字符串
  • split(Reg):String.split(Reg),消除匹配的分割符
  • replace():String.replace(Reg,'newString'),替換匹配到的字符串
  • search():String.search(Reg)返回匹配到的字符串的下標

五、對手機號碼的匹配

例子代碼:工具

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test2</title>
</head>

<body>
    <p id="p" style="color:red;"></p>
    <input id="phone" type="text" name="phone" value='' placeholder="請輸入手機號!">
    <input id="btn" type="submit" value="點擊"></input>
    <script>
        window.onload = function() {
            var btn = document.getElementById('btn');
            var p = document.getElementById('p');
            var reg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/;
            btn.onclick = function() {
                var phone = document.getElementById('phone').value;
                if (reg.test(phone)) {
                    p.innerHTML = '該手機號正確!';
                } else {
                    p.innerHTML = '該手機號錯誤!';
                }
            }
        }
    </script>
</body>

</html>
相關文章
相關標籤/搜索