review javascript 21:正則表達式

定義:專門規(guī)定字符串中【字符串的規(guī)律】

(1)知識點

  • (1.1)備選字符集
  • (1.2)預定義備選字符集
  • (1.3)量詞:字符集出現(xiàn)的次數(shù)
  • (1.4)選擇和分組
  • (1.5)轉義
  • (1.6)匹配指定位置
  • (1.7)預判
  • (1.8)漢字備選字符集

(2)細化

  • (2.1)備選字符集:必須且只能多選一

<pre>
一組數(shù)字:[0-9]
一組小寫字母:[a-z]
一組大寫字母:[A-Z]
</pre>

  • (2.2)預定義備選字符集

<pre>
\d --> [0-9]
\w --> [0-9a-zA-Z_]
\s --> 所有空字符,比如:空格 制表符 換行
\D --> 非【\d】,除了數(shù)字
. --> 除了換行和回車后的任意字符
</pre>

  • (2.3)量詞:字符集出現(xiàn)的次數(shù)

<pre>
{min,max} --> 從某個值到某個值
{min,} --> 大于等于某個值
{n} --> 固定數(shù)量
? --> 可有可無,最多一個

  •     --> 可有可無,數(shù)量不限
    
  •     --> 至少一個,數(shù)量不限
    

</pre>

  • (2.4)選擇和分組
    選擇:<pre>
    或 --> |
    </pre>分組:
    <pre>
    分組 --> ( )
    </pre>

  • (2.5)轉義

<pre>
轉義 -->
</pre>

  • (2.6)匹配指定位置

<pre>
開頭匹配 --> ^
結尾匹配 --> $
開頭或者結尾匹配 --> ^xx | xx$ (中間有|)
完全匹配 --> ^xxx$ (中間沒有|)
單詞匹配 --> \bxxx\b
</pre>

  • (2.7)預判:在正式匹配前,先大概預判整個字符串的規(guī)則,多用于排除法
    4大類:數(shù)字,小寫字母,大寫字母,特殊符號

  • (2.8)漢字備選字符集:[\u4e00-\u9fa5]
    jQuery插件中已經(jīng)封裝了大量現(xiàn)成的正則表達式,比如電子郵件,html標簽,url地址


(3)方法

定義 RegExp:

var patt = new RegExp("e");
  • (3.1)test() 方法檢索字符串中的指定值。返回值是 true 或 false。
    test() 方法檢索字符串中的指定值。返回值是 true 或 false。

  • (3.2)exec() 方法檢索字符串中的指定值。返回值是被找到的值。如果沒有發(fā)現(xiàn)匹配,則返回 null。

var patt = new RegExp("e","g");

g:您可以向 RegExp 對象添加第二個參數(shù),以設定檢索

  • (3.3)compile() 方法用于改變 RegExp。

** Tips:做驗證:都要前加^,后加$ **


(4)實踐

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>正則表達式</title>
</head>
<body>

</body>
</html>

<script type="text/javascript">
    init();
    function init() {
        phoneNum();
    }

    /**
     * 手機號:
     * +86或0086   整體可有可無,最多1次
     * 數(shù)量不限個空字符
     * 1
     * 在34578中選其一
     * 9位數(shù)字
     * (\+86|0086)?\s*1[34578]\d{9}
     */
    function phoneNum(){
        /**
         * 手機號碼匹配
         * 有開頭和結尾的
         */
        var p1 = new RegExp(/^1[34578]\d{9}$/);

        /**
         * 手機號碼匹配
         * 沒有開頭和結尾的
         */
        var p2 = new RegExp(/1[34578]\d{9}/);

        // 是否匹配
        console.log(p1.test("134"));//false
        console.log(p1.test("13122222222"));//true
        console.log(p1.test("a13122222222b"));//false
        console.log(p2.test("a13122222222b"));//true

        // 找出匹配內(nèi)容
        console.log(p2.exec("a13122222222b"));//13122222222
    }

</script>

RegExp:http://www.w3school.com.cn/js/js_obj_regexp.asp
RegExp 對象:http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容