構造正則表達式:javascript
javascript//方式1: var re = /\w+/; //最經常使用的方式 //方式2: var re = new RegExp("\\w+"); //注意轉義
描述:test() 方法執行一個檢索,用來查看正則表達式與指定的字符串是否匹配。返回 true 或 false。java
javascriptfunction testinput(re, str){ var midstring; if (re.test(str)) { midstring = " contains "; } else { midstring = " does not contain "; } console.log(str + midstring + re.source); } testinput(/c{2}/, 'cainiao'); //"cainiao does not contain c{2}"
javascriptvar re = /d(b+)(d)/ig; var result = re.exec("cdbBdbsbz"); console.log(result); //["dbBd", "bB", "d", index: 1, input: "cdbBdbsbz"]
對象 | 屬性/索引 | 描述 | 例子 |
result |
[0] |
正則表達式最後的匹配項 | dbBd |
[1], ...[ n ] |
子表達式匹配項 | [1] = bB |
|
index |
第一個匹配項在原字符串中的索引 | 1 |
|
input |
方法輸入的參數字符串 | cdbBdbsbz |
|
re |
lastIndex |
下一次執行匹配開始索引的位置. | 5 |
ignoreCase |
指"i " 標識是否啓用 |
true |
|
global |
指"g " 標識是否啓用 |
true |
|
multiline |
指"m " 標識是否啓用 |
false |
|
source |
正則表達式的文本表示 | d(b+)(d) |
*描述:search() 方法執行一個查找,看該字符串對象與一個正則表達式是否匹配。參數reg爲一個正則表達式對象,不然隱式調用new RegExp(reg)進行轉換。
若是匹配成功,則 search 返回正則表達式在字符串中首次匹配項的索引。不然,返回 -1。正則表達式
javascriptfunction testinput(re, str){ var midstring; if (str.search(re) != -1){ midstring = " contains "; } else { midstring = " does not contain "; } console.log (str + midstring + re); } testinput(/db*/, 'sdbbdee'); //sdbbdee contains /db*/
*reference: MDN參考express
javascriptvar str = "For more information, see Chapter 3.4.5.1"; var re = /(chapter \d+(\.\d)*)/i; //不是用g的狀況 var found = str.match(re); console.log(found); //["Chapter 3.4.5.1", "Chapter 3.4.5.1", ".1", index: 26, input: "For more information, see Chapter 3.4.5.1"]
javascriptvar str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; var regexp = /[A-E]/gi; //使用g時,found不存在index和input屬性 var found = str.match(regexp); //['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
*reference:MDN參考數組
描述:replace() 方法使用一個替換值(replacement)替換掉一個匹配模式(pattern)在原字符串中某些或全部的匹配項,並返回替換後的字符串。這個替換模式能夠是字符串或者正則表達式,替換值能夠是一個字符串或者一個函數。瀏覽器
參數
regexp:
一個 RegExp 對象。該正則所匹配的內容會被第二個參數的返回值替換掉。
substr:
一個要被 newSubStr 替換的字符串。
newSubStr:
替換掉第一個參數在原字符串中的匹配部分。該字符串中能夠內插一些特殊的變量名。
function:
一個用來建立新子字符串的函數,該函數的返回值將替換掉第一個參數匹配到的結果。該函數的參數描述請參考 Specifying a function as a parameter 小節。.
flags:
注意:flags 參數在 v8 內核(Chrome and NodeJs)中不起做用。一個字符串,用來指定 regular expression flags 或其組合。在 String.replace method 中使用 flags 參數不是符合標準。使用一個帶有相應標誌(flags)的正則表達式(RegExp)對象來代替此參數。該參數的值應該是下面的一個或多個字符,具體做用見下:
g 全局替換
i 忽略大小寫
m 多行模式app
返回:
一個新字符串,其中匹配模式的某些或全部匹配項被替換爲替換值。該方法並不改變調用它的字符串自己,而只是返回替換後的字符串.函數
javascriptvar re = /apples/gi; var str = "Apples are round, and apples are juicy."; var newstr = str.replace(re, "oranges"); print(newstr); //"oranges are round, and oranges are juicy."
等同於:ui
javascriptvar str = "Apples are round, and apples are juicy."; var newstr = str.replace("apples", "oranges", "gi"); print(newstr); //"oranges are round, and oranges are juicy."
javascriptvar re = /(\w+)\s(\w+)/; var str = "John Smith"; var newstr = str.replace(re, "$2, $1"); print(newstr); //'Smith John'
*注: 若是 separator 是一個正則表達式,且包含捕獲括號(capturing parentheses),則每次匹配到 separator 時,捕獲括號匹配的結果將會插入到返回的數組中。然而,不是全部瀏覽器都支持該特性。 spa
javascriptvar myString = "Hello 1 word. Sentence number 2."; var splits = myString.split(/(\d)/); console.log(splits); //["Hello ", "1", " word. Sentence number ", "2", "."]