\ : 將下一個字符標記爲一個特殊字符、或一個原義字符、或一個 向後引用、或一個八進制轉義符正則表達式
^ : 匹配輸入字符串的開始位置,好比^[0-9],表示匹配以數字開頭的字符數組
$ : 匹配輸入字符串的結束位置,好比[0-9]$,表示匹配以數字結尾的字符,注意[0-9]+$,匹配從末尾起的全部數字,好比'fewa12',[0-9]$會匹配到2,而[0-9]+$會匹配12函數
* : 表示匹配前面的表達式0到n次,等價於{0,}性能
+ : 表示匹配前面的表達式1到n次,等價於{1,}編碼
? : 匹配前面的子表達式零次或一次,例如c(ab)?,能夠匹配c、cab,當?緊跟在任何一個其餘限制符 (*, +, ?, {n}, {n,}, {n,m}) 後面時,匹配模式是非貪婪的。非貪婪模式儘量少的匹配所搜索的字符串,而默認的貪婪模式則儘量多的匹配所搜索的字符串,例如,對於字符串 "oooo",'o+?' 將匹配單個 "o",而 'o+' 將匹配全部 'o'3d
{n} : n 是一個非負整數。匹配肯定的 n 次code
{n,} : n 是一個非負整數。至少匹配n 次。regexp
{n,m} : m 和 n 均爲非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次cdn
. : 匹配除換行符(\n、\r)以外的任何單個字符blog
(pattern) : 匹配 pattern 並獲取這一匹配。所獲取的匹配能夠從產生的 Matches 集合獲得,str.match(reg)
(?:pattern) : 匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供之後使用,例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡略的表達式。好像沒有什麼卵用
(?=pattern) : 正向確定預查(look ahead positive assert),在任何匹配pattern的字符串開始處匹配查找字符串。是一個非獲取匹配,也就是說,該匹配不須要獲取供之後使用
(?!pattern) : 正向否認預查(negative assert),在任何不匹配pattern的字符串開始處匹配查找字符串。這是一個非獲取匹配,也就是說,該匹配不須要獲取供之後使用。
(?<=pattern) : 反向(look behind)確定預查,與正向確定預查相似,只是方向相反。例如,"(?<=95|98|NT|2000)Windows"能匹配"2000Windows"中的"Windows",但不能匹配"3.1Windows"中的"Windows"。
(?<!pattern) : 反向否認預查,與正向否認預查相似,只是方向相反。例如"(?<!95|98|NT|2000)Windows"能匹配"3.1Windows"中的"Windows",但不能匹配"2000Windows"中的"Windows"。
x|y : 匹配x或y,例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 則匹配 "zood" 或 "food"。
[xyz] : 字符集合。匹配所包含的任意一個字符。例如, '[abc]' 能夠匹配 "plain" 中的 'a'。
[^xyz] : 負值字符集合。匹配未包含的任意字符。例如, '[^abc]' 能夠匹配 "plain" 中的'p'、'l'、'i'、'n'。
[a-z] : 字符範圍。匹配指定範圍內的任意字符。例如,'[a-z]' 能夠匹配 'a' 到 'z' 範圍內的任意小寫字母字符。
[^a-z] : 負值字符範圍。匹配任何不在指定範圍內的任意字符。例如,[^abc]能匹配jewabc的j、e、w
\b : 匹配一個單詞邊界,也就是指單詞和空格間的位置。例如, 'er\b' 能夠匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er','\b'實際上是匹配不了東西的
\B : 匹配非單詞邊界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'
\cx : 匹配由 x 指明的控制字符。例如, \cM 匹配一個 Control-M 或回車符。x 的值必須爲 A-Z 或 a-z 之一。不然,將 c 視爲一個原義的 'c' 字符。
\d : 匹配一個數字字符。等價於 [0-9]。
\D : 匹配一個非數字字符。等價於 [^0-9]。
\f : 匹配一個換頁符。等價於 \x0c 和 \cL。
\n : 匹配一個換行符。等價於 \x0a 和 \cJ。
\r : 匹配一個回車符。等價於 \x0d 和 \cM。
\s : 匹配任何空白字符,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。
\S : 匹配任何非空白字符。等價於 [^ \f\n\r\t\v]。
\t : 匹配一個製表符。等價於 \x09 和 \cI。
\v : 匹配一個垂直製表符。等價於 \x0b 和 \cK。
\w : 匹配字母、數字、下劃線。等價於'[A-Za-z0-9_]'。
\W : 匹配非字母、數字、下劃線。等價於 '[^A-Za-z0-9_]'。
\xn : 匹配 n,其中 n 爲十六進制轉義值。十六進制轉義值必須爲肯定的兩個數字長。例如,'\x41' 匹配 "A"。'\x041' 則等價於 '\x04' & "1"。正則表達式中可使用 ASCII 編碼。
\num : 匹配 num,其中 num 是一個正整數。對所獲取的匹配的引用。例如,'(.)\1' 匹配兩個連續的相同字符。不要忘了表達式括號。
\n : 標識一個八進制轉義值或一個向後引用。若是 \n 以前至少 n 個獲取的子表達式,則 n 爲向後引用。不然,若是 n 爲八進制數字 (0-7),則 n 爲一個八進制轉義值。
\nm : 標識一個八進制轉義值或一個向後引用。若是 \nm 以前至少有 nm 個得到子表達式,則 nm 爲向後引用。若是 \nm 以前至少有 n 個獲取,則 n 爲一個後跟文字 m 的向後引用。若是前面的條件都不知足,若 n 和 m 均爲八進制數字 (0-7),則 \nm 將匹配八進制轉義值 nm。
\nml : 若是 n 爲八進制數字 (0-3),且 m 和 l 均爲八進制數字 (0-7),則匹配八進制轉義值 nml。
\un : 匹配 n,其中 n 是一個用四個十六進制數字表示的 Unicode 字符。例如, \u00A9 匹配版權符號 (?)。
\ : 轉義符
(), (?:), (?=), [] : 圓括號和方括號
*, +, ?, {n}, {n,}, {n,m} : 限定符
^, $, \任何元字符、任何字符 : 定位點和序列(即:位置和順序)
| : 替換,"或"操做,字符具備高於替換運算符的優先級
^once$ : 精確匹配
[^a-z] : ^表示排除匹配
.{2} : 任意兩個除了'\n'以外的字符
^\- : 匹配以-開頭的字符串,等於^[-],用中括號就不須要用\轉義了
return一個匹配後的字符串,且不改變原來變量的值。若是正則不帶g,那麼只匹配一次,i表示忽略大小寫,replacement 中的 $ 字符具備特定的含義。以下表所示,它說明從模式匹配獲得的字符串將用於替換。ECMAScript v3 規定,replace() 方法的參數 replacement 能夠是函數而不是字符串。在這種狀況下,每一個匹配都調用該函數,它返回的字符串將做爲匹配模式字符串的替換文本使用。該函數的第一個參數是匹配模式的字符串。接下來的參數是與模式中的子表達式匹配的字符串,能夠有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明瞭匹配在 stringObject 中出現的位置。最後一個參數是 stringObject 自己
$&匹配到全部子串的和
若是字符串 string 中含有與 RegExpObject 匹配的文本,則返回 true,不然返回 false。
返回一個數組,其中存放匹配的結果。若是未找到匹配,則返回值爲 null。
若是 exec() 找到了匹配的文本,則返回一個結果數組。不然,返回 null。此數組的第 0 個元素是與正則表達式相匹配的文本,第 1 個元素是與 RegExpObject 的第 1 個子表達式相匹配的文本(若是有的話),第 2 個元素是與 RegExpObject 的第 2 個子表達式相匹配的文本(若是有的話),以此類推。
當 RegExpObject 是一個全局正則表達式時,它會在 RegExpObject 的 lastIndex 屬性指定的字符處開始檢索字符串 string。這就是說,您能夠經過反覆調用 exec() 方法來遍歷字符串中的全部匹配文本。
存放匹配結果的數組。該數組的內容依賴於 regexp 是否具備全局標誌 g。若是 regexp 沒有標誌 g,那麼 match() 方法就只能在 stringObject 中執行一次匹配。若是沒有找到任何匹配的文本, match() 將返回 null。不然,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其他的元素存放的是與正則表達式的子表達式匹配的文本。
若是 regexp 具備標誌 g,則 match() 方法將執行全局檢索,找到 stringObject 中的全部匹配子字符串。若沒有找到任何匹配的子串,則返回 null。若是找到了一個或多個匹配子串,則返回一個數組。不過全局匹配返回的數組的內容與前者大不相同,它的數組元素中存放的是 stringObject 中全部的匹配子串,並且也沒有 index 屬性或 input 屬性
其中pattern是一個字符串,好比'^[0-9]+'
參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用於指定全局匹配、區分大小寫的匹配和多行匹配。new RegExp 能夠大幅度提高程序的性能
RegExpObject.compile(regexp,modifier)
compile() 方法用於在腳本執行過程當中編譯正則表達式。 compile() 方法也可用於改變和從新編譯正則表達式。
search() 方法用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。search() 方法不執行全局匹配,它將忽略標誌 g。它同時忽略 regexp 的 lastIndex 屬性,而且老是從字符串的開始進行檢索,這意味着它老是返回 stringObject 的第一個匹配的位置
String.split() 執行的操做與 Array.join 執行的操做是相反的