在JS中正則表達式的定界符就是一對/,全部寫在/以內的都是正則的內容。數組
注意:在其餘語言中可使用其餘特殊符號做爲正則定界符。測試
原子是組成正則表達式最基本的單位。任何一個正則表達式至少包含一個原子。code
元字符的做用就是用來修飾原子,使得正則表達式的結構更加靈活可靠。元字符也叫做原子修飾符。regexp
[]
原子列表用戶能夠經過原子列表的方式自定義指定範圍的字符。原子列表依然表示指定範圍字符中的一個字符。對象
注意: 原子列表表示多個字符中的一個字符。內存
[^]
排除列表排除列表是原子列表的提高,能夠限定選取制定字符以外的字符中的一個。字符串
\*
任意數量的指定原子\+
一個數量以上的原子?
表示0個或1個原子{}
圈定範圍{m} 表示m個原子io
{m,} 表示m個以上的原子console
{m,n} 表示m-n個數量之間原子
^
表示字符串必須以正則中指定的字符開頭!$
表示字符串必須以正則中指定的字符結尾!^正則表達式$ 精確匹配模式
\b
單詞邊界表示可以用來分割單詞的字符, 空格,標點符號,特殊字符(除了數字和字母)
\B
非單詞邊界表示不可以用於分割單詞的字符。 數字和字母 注意:詞邊界和非詞邊界通常只用於英文正則中。
\n
以外的任意一個字符注意:若是正則中須要使用字符。 必須進行轉義 \。 除此以外,任意在正則表達式中又意義的字符要當作普通字符使用都必須進行轉義操做(。 * + ? [] () ^ $)
()
括號元字符|
或運算元字符i
忽略英文大小寫g
全局匹配模式m
多行匹配模式.*?
貪婪模式正則在進行匹配時,從開始位置查找最遠的結束位置,這種模式稱之爲貪婪模式。
在進行HTML標籤相似內容獲取時,貪婪模式會致使整個內容的返回,須要使用非貪婪模式。
固定的書寫規則 : .*? 這種方式就是非貪婪模式
?:
取消暫存內容的做用()
最前面 加上?:
字符串 例如 (?:/\d/)
var 變量 = /正則規則/模式修正符; var a = /\d/g;
var 變量 = new RegExp('正則規則','模式修正符'); var a = new RegExp('\\d', 'g');
\\
轉義
var a = /\d/g; var b = a.source; console.log(b);
輸出:\d
獲取結果不包括在正則表達式文本中使用的分隔斜線,而且它不包括在「g」,「i」 和「m」 屬性。
exec(字符串)
;exec()
和match()
的區別:
exec()
和match()
除了操做格式不同,結果是同樣的。exec()
依然進行一次匹配,只不過在上次匹配的內容以後開始一次新的匹配match()
是一次性返回字符串中全部符合正則內容組成的數組。它的參數是一個字符串,用test( )對某個字符串進行檢測,該方法僅僅是用於測試正則內容是否在字符串中出現,匹配成功返回true,匹配失敗返回false。