正則表達式

 正則

  • 數據類型:
  • 基本: string number boolean null undefined
  • 引用類型: array object regExp function
  • 建立正則
    字面量建立
        正則由匹配的字符和修飾符組成
        var reg = /123/ig;
        new RegExp方式建立
        var reg1 = new RegExp('123','ig')
        var s = 'abc';
        var reg3 = new RegExp(s, 'i');
        console.log(reg3);
    修飾符
          i: 忽略大小寫
          g : 全局匹配
    經常使用的元字符
    - \d  0-9數字
    - \D  非數字
    - \w   數字、字母(大小寫)、下劃線
    - \W   除了數字、字母(大小寫)、下劃線之外的任意字符
    - \s   匹配空格或空白字符
    - \S   除了空白之外的字符
    - .    除了換行的任意字符
    - \.   點自己
    - \b   邊界  單詞的兩邊和字符串的開頭和結尾都是邊界
    - ^   開始
    - $   結尾
    數量
    - * 0-屢次 - ? 0-1次 - + 1-屢次 - {n} n次 - {n,} 至少n次 - {n,m} n-m次
    或者
    - (a|b|c) a,b,c中的一個字符 - [abc] a,b,c中的一個字符 - (abc|xyz|opq) abc或者xyz或者opq中的一組 - [a-z] 匹配小寫字母中的一個 - [^a-z] 除了小寫字母中之外的任意字符
 
  • 正則相關方法
    regExp1.test(string) // true、false
    regExp2.exec(string); //用正則匹配字符串中對應的字符
        var str = 'welcome to ujiuye!'
        var reg = /e/g;
        console.log(reg.lastIndex); //0 下一次匹配的開始位置
        reg.lastIndex = 2; //設置匹配的開始位置
    
        var r = reg.exec(str);
        console.log(r); //6
        console.log(reg.lastIndex); //7
    
        r = reg.exec(str);
        console.log(r); //16
    
        r = reg.exec(str);
        console.log(r); //null 
 
  • 字符串方法(正則相關):
    string.match(reg) ; 匹配字符串中符合正則表達式的字符
        var str = 'welcome to ujiu-ye!'
        var reg = /e/g;
        var r = str.match(reg); //若是正則沒有修飾符g ,和調用一次exec結果同樣
        console.log(r);  //['e','e','e'] //若是有修飾符,就是把全部的匹配到的字符放在數組中返回
       
        string.split(/[- ,]/); 同時用多個分割符分割字符串
        string.replace(/123/g,''); 全局替換
        string.replace(/(123)/g,'$1') 使用分組替換
        string.search(reg); 返回第一次匹配的字符的索引

     

參考資料:https://www.cnblogs.com/libinqq/archive/2008/07/31/1257699.htmlhtml

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息