Nodejs正則表達式函數之match、test、exec、search、split、replace

1. Match函數正則表達式

使用指定的正則表達式函數對字符串驚醒查找,並以數組形式返回符合要求的字符串數組

原型:stringObj.match(regExp)函數

參數:spa

  • stringObj 必選項,須要去進行匹配的字符串orm

  • RegExp  必選項,指定的正則表達式索引

返回值:若是沒有使用g(全局匹配)選項,則返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,若是使用g選項,則返回全部匹配的字符串組成的數組字符串

  1.   示例1:   input

  2.   var str = 「aaabbbcccaaabbbccc」;   原型

  3.   var res = str.match(/aaa/); //沒有使用g選項   string

  4.   console.log(res); //輸出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ] 第一個表示匹配的字符串;第二個表示匹配的字符串坐在的索引位置,從0開始計算;第三個表示原始字符串;   


  5.   示例2:   

  6.   var str = 「aaabbbcccaaabbbccc」;   

  7.   var res = str.match(/aaa/g); //使用g選項,全局匹配   

  8.   console.log(res); //輸出[ 'aaa', 'aaa' ] 全部匹配的字符串組成的數組  

 

2.exec函數

使用指定的正則表達式模式去字符串中查找匹配項,並以數組形式返回,若是未查找到則返回null

原型:regExp.exec(stringObj)

參數:

  • regExp 必選項,表示指定的正則表達式模式

  • stringObj 必選項,表示須要查找的字符串

返回值:不管有無g選項,都返回第一個匹配的字符串、該字符串所在位置及原始字符串組成的數組,可是該方法能夠返回子匹配項,是match所不能及的

  1.   示例1:   

  2.   var str = 「aaabbbcccaaabbbccc」;   

  3.   var regExp = /aaa/; //未使用g選項   

  4.   var res = regExp .exec(str);    

  5.   console.log(res); //輸出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]   

  6.   示例2:   

  7.   var str = 「aaabbbcccaaabbbccc」;   

  8.   var regExp = /aaa/g; //使用g選項   

  9.   var res = regExp .exec(str);    

  10.   console.log(res); //輸出[ 'aaa', index: 0, input: 'aaabbbcccaaabbbccc' ]   

  11.   示例3:   

  12.   var str = 「aaabbbccc1234aaabbbccc」;   

  13.   var regExp = /ccc([0-9]+)aaa/;   

  14.   var res = regExp .exec(str);    

  15.   console.log(res); //輸出[ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbccc' ] 第一個表示整個正則表達式所匹配的內容;第二個表示()內容的子表達式所匹配的內容;第三個和第四個同上   

  16.   示例4:   

  17.   var str = 「aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc」;   

  18.   var reg = /ccc([0-9]+)aaa/;   

  19.   var res = reg.exec(str);   

  20.   console.log(res); //輸出同示例三,由於exec只返回第一個匹配的字符串,若是想所有返回,則須要藉助while循環和g參數來實現,以下   

  21.   var str = 「aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc」;   

  22.   var reg = /ccc([0-9]+)aaa/g;   

  23.   while(res = reg.exec(str)){   

  24.     console.log(res);   

  25.   }   

  26.   //輸出以下:   

  27. [ 'ccc1234aaa', '1234', index: 6, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ][ 'ccc5678aaa', '5678', index: 28, input: 'aaabbbccc1234aaabbbcccaaabbbccc5678aaabbbccc' ]   

  28. //使用這個方法時切記加上g選項,不然while循環將沒法跳出,每次都循環第一個匹配項,致使死循環,可能卡死!  

 

3.test函數

原型:regExp.test(str)

參數:regExp表示正則表達式模式  stringObj表示須要進行匹配的字符串

返回值:布爾類型,匹配則返回true,不然false

  1.   示例1:   

  2.   var str = 「aaabbbcccaaabbbccc」;   

  3.   var reg = /[a-z]+/;   

  4.   var res = reg.test(str);   

  5.   console.log(res); //輸出true   

  6.   示例2:   

  7.   var str = 「aaabbbcccaaabbbccc」;   

  8.   var reg = /[0-9]+/;   

  9.   var res = reg.test(str);   

  10.   console.log(res); //輸出false   

  11.   //該函數通常用來檢測某字符串是否符合指定的規則  

4.search函數

原型:stringObj.search(regExp)

參數:regExp表示正則表達式模式  stringObj表示須要進行匹配的字符串

返回值:返回第一個匹配的字符串所在的位置(偏移量),從0開始

  1.   示例1:   

  2.   var str = 「aaabbbcccaaabbbccc」;   

  3.   var reg = /ccc/;   

  4.   var res = str.search(reg);   

  5.   console.log(res); //輸出 6  

 

5.replace函數

原型:stringObj.replace(regExp, replaceText)

參數:regExp表示正則表達式模式,stringObj表示須要進行匹配的字符串,replaceText表示替換成該文本內容,replaceText也能夠是返回字符串的一個函數

返回值:返回替換以後的字符串

  1.   示例1:   

  2.   var str = 「aaabbbcccaaabbbccc」;   

  3.   var reg = /aaa/;   

  4.   var res = str.replace(reg, ’111′);   

  5.   console.log(res);//返回111bbbcccaaabbbccc ,只替換第一個匹配項,若須要替換全部則須要使用g選項  

5.split函數

原型:stringObj.split([separator[, limit]])

參數:separator表示分隔符(此處也能夠是正則表達式),stringObj表示須要進行匹配的字符串,limit用來限制返回數組元素的個數

返回值:返回分割後的數組

  1.   示例1:   

  2.   var str = 「aaa,bbb,ccc」;   

  3.   var reg = /,/;   

  4.   var res = str.split(reg);   

  5.   console.log(res); //輸出[ 'aaa', 'bbb', 'ccc' ]   

  6.   //其實這裏能夠簡單的寫爲var res = str.split(「,」);   

  7.   示例2:   

  8.   var str = 「aaa,bbb:ccc@ddd#eee」;   

  9.   var reg = /[,:@#]/;   

  10.   var res = str.split(reg);   

  11.   console.log(res); //輸出[ 'aaa', 'bbb', 'ccc', 'ddd', 'eee' ] 這纔是用正則的強大之處   

  12.   示例3.   

  13.   var str = 「aaa,bbb:ccc@ddd#eee」;   

  14.   var reg = /[,:@#]/;   

  15.   var res = str.split(reg, 3);   

  16.   console.log(res); //輸出[ 'aaa', 'bbb', 'ccc']

相關文章
相關標籤/搜索