RegExp 對象表示正則表達式,它是對字符串執行模式匹配的強大工具正則表達式
直接量語法數組
/pattern/attributes函數
建立RegExp對象的語法工具
new RegExp(pattern,attributes);code
參數對象
pattern是一個字符串,指定了正則表達式的模式或其餘正則表達式ip
attributes是一個可選的字符串,包含屬性"g","i","m",分別用於指定全局匹配,區分大小寫的匹配和多行匹配。ECMAScript標準化以前,不支持m屬性。若是pattern是正則表達式,而不是字符串,則必須省略參數。字符串
返回值it
一個新的RegExp對象,具備指定的模式和標誌。若是參數pattern是正則表達式而不是字符串,那麼RegExp()構造函數將用與指定的RegExp相同的模式和標誌建立一個新的RegExp對象編譯
若是不用new運算符,而將RegExp()做爲函數調用,那麼它的行爲與new運算符調用時同樣,只是當pattern是正則表達式時,它只是返回pattern,而再也不建立一個RegExp對象。
拋出
SyntaxError - 若是pattern不是合法的正則表達式,或attributes含有"g","i","m"以外的字符,拋出該異常。
TypeError - 若是pattern是RegExp對象,可是沒有省略attributes 參數,拋出該異常。
修飾符
i 執行對大小寫不敏感的匹配
g 執行全局匹配(查找全部匹配而非找到第一個匹配而中止)。
m 執行多行匹配
方括號
方括號用於查找某個範圍內的字符:
【abc】查找方括號之間的任何字符
【^abc】查找任何不在方括號之間的字符
【0-9】查找任何從0至9的數字
【a-z】查找任何從小寫a到小寫z的字符
【A-Z】查找任何大寫A至大寫Z的字符
【A-z】查找任何大寫A至小寫z的字符
【adgk】查找給定集合內的任何字符
【^adgk】查找給定集合外的任何字符
(red|bule|yellow)查找任何指定的選項
元字符
. 查找單個字符,除了換行和行結束符
\w 查找單詞字符
\W查找非單詞字符
\d 查找數字
\D查找非數字字符
\s查找空白字符串
\S查找非空白字符
\b匹配單詞邊界
\B匹配非單詞邊界
\0查找NUL字符
\n查找換行符
\f查找換頁符
\r查找製表符
\v查找垂直製表符
\xxx查找以八進制數xxx規定的字符
\xdd查找以十六進制數dd規定的字符
\uxxxx查找以十六進制數xxxx規定的Unicode字符
量詞
n+匹配任何包含至少一個n的字符串
n*匹配任何包含零個或多個n的字符串
n?匹配包含零個或一個n的字符串
n{X}匹配包含X個n的序列字符串
n{X,Y}匹配包含X至Y個n的序列字符串
n{X,}匹配包含至少X個n的序列字符串
n$匹配任何結尾爲n的字符串
^n匹配任何開頭爲n的字符串
?=n匹配任何其後緊接指定字符串n的字符串
?!n匹配任何其後沒有緊接指定字符串n的字符串
RegExp對象屬性
global RegExp對象是夠具備標誌g
ignoreCase RegExp對象是否 具備標誌i
lastindex 一個整數,標識開始下一次匹配的字符位置
multiline RegExp對象是否具備標識m
source 正則表達式的源文本
RegExp對象方法
compile 編譯正則表達式
exec 檢索字符串中指定的值。返回找到的值,並肯定其位置
test 檢索字符串中指定的值,返回true或false
支持正則表達式的String對象的方法
search 檢索與正則表達式匹配的值
match 找到一個或多個正則表達式的匹配
replace 替換與正則表達式匹配的子串
split 把字符串分割爲字符串數組