JavaScript連載25-正則表達式的匹配分割替換以及貪婪模式

1、test方法

    var dateStr = '2020-01-01';
    var dateReg = /^\d{4}-\d{2}-\d{2}$/;
    console.log(dateReg.test(dateStr));//test方法用於驗證是不是知足正則表達式格式

運行結果:
25.1html

2、提取正則表達式

1. 正則對象.exec(要匹配的內容)

    var qqStr = "小明:15778945869,小虎:15678645678,小紅:13848956123";
    var reg = /\d+/g;
    do{
        var content = reg.exec(qqStr);//返回了一個數組,索引第一個值就是匹配的內容
        if(content){
            console.log(content[0]);
        }
    }while(content)
    //能夠看出來content即便是在大括號的外面也依然能夠使用

運行結果:
25.2git

2. 要匹配的內容.match(正則對象)

    var qqStr = "小明:15778945869,小虎:15678645678,小紅:13848956123";
    var reg = /\d+/g;
    var qqArr = qqStr.match(reg);
    console.log(qqArr);//返回一個匹配全部結果的列表

運行結果:
25.3github

3.分組匹配的結果

  • 使用RegExp.$數字來進行提取分組表達式
    var dateStr = '2020-01-01';
    dateReg2 = /^(\d{4})-(\d{2})-(\d{2})$/;
    if(dateReg2.test(dateStr)){
        console.log(RegExp.$1);
        console.log(RegExp.$2);
        console.log(RegExp.$3);
    }

顯示結果:
25.4正則表達式

4.替換

  • 要匹配的對象.replace(正則對象,新字符)
    var str2 = '              it  like   iy d ewd   dew   dd      ';
    console.log(str2.trim());//去除首尾空格
    //可是咱們想要取代全部的空格,那就要用正則表達式了
    str3 = str2.replace(/\s/g,'*');//加上g就是非貪婪
    str4 = str2.replace(/\s/,"*");
    str5 = str2.replace(/\s*$/,"*");
    console.log(str3);
    console.log(str4);
    console.log(str5);

顯示結果:
25.5數組

5.分隔

    var dateStr3 = "2020-11-12";
    console.log(dateStr3.split("-"));//返回一個分割的列表

顯示結果:
25.6微信

6.貪婪與非貪婪

  • 使用?便可實現
    var str6 = "aaaaaaaaabbbbbbbbbbbbbaaaaaaaaaaaa";
    var res = str6.match(/a.*b/);//默認是貪婪模式
    var res2 = str6.match(/a.*?b/)
    console.log(res);
    console.log(res2);

顯示結果: 25.7編輯器

2、源碼:

    • D25_MethodOfMatch.html
    • 地址:https://github.com/ruigege66/JavaScript/blob/master/D25_MethodOfMatch.html
    • 博客園:https://www.cnblogs.com/ruigege0000/
    • CSDN:https://blog.csdn.net/weixin_44630050?t=1
    • 歡迎關注微信公衆號:傅里葉變換,我的帳號,僅用於技術交流,後臺回覆「禮包」獲取Java大數據學習視頻禮包
      20.4
相關文章
相關標籤/搜索