RegExp 對(duì)象
正則表達式是一種字符模式。
該模式用(yòng)于對(duì)文(wén)本進行模式匹配的“搜索和(hé)替換”功能(néng)。
在 JavaScript 中,RegExp 對(duì)象是一種擁有屬性和(hé)方法的模式。
語法
/pattern/modifier(s);
實例
let pattern = /w3school/i;
修飾符
修飾符用(yòng)于執行不區(qū)分大(dà)小(xiǎo)寫和(hé)全局的搜索:
修飾符 | 描述 |
---|---|
g | 執行全局匹配(查找所有匹配而不是在第一個匹配後停止)。 |
i | 執行不區(qū)分大(dà)小(xiǎo)寫的匹配。 |
m | 執行多行匹配。 |
方括号
方括号用(yòng)于查找某個範圍内的字符:
表達式 | 描述 |
---|---|
[abc] | 查找括号之間的任何字符。 |
[^abc] | 查找任何不在方括号之間的字符。 |
[0-9] | 查找任何從(cóng) 0 至 9 的數字。 |
[^0-9] | 查找任何不在括号内的字符(任何非數字)。 |
(x|y) | 查找任何指定的選項。 |
元字符
元字符是具有特殊含義的字符:
元字符 | 描述 |
---|---|
. | 查找單個字符,除了(le)換行符或行終止符。 |
\w | 查找單詞字符。 |
\W | 查找非單詞字符。 |
\d | 查找數字。 |
\D | 查找非數字字符。 |
\s | 查找空(kōng)白(bái)字符。 |
\S | 查找非空(kōng)白(bái)字符。 |
\b | 在單詞的開(kāi)頭/結尾查找匹配項,開(kāi)頭如下(xià):\bHI,結尾如下(xià):HI\b。 |
\B | 查找匹配項,但(dàn)不在單詞的開(kāi)頭/結尾處。 |
\0 | 查找 NULL 字符。 |
\n | 查找換行符。 |
\f | 查找換頁符。 |
\r | 查找回車符。 |
\t | 查找制表符。 |
\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 開(kāi)頭的字符串。 |
?=n | 匹配任何其後緊接指定字符串 n 的字符串。 |
?!n | 匹配任何其後沒有緊接指定字符串 n 的字符串。 |
RegExp 對(duì)象屬性
屬性 | 描述 |
---|---|
constructor | 返回創建 RegExp 對(duì)象原型的函數。 |
global | 檢查是否設置了(le) "g" 修飾符。 |
ignoreCase | 檢查是否設置了(le) "i" 修飾符。 |
lastIndex | 規定開(kāi)始下(xià)一個匹配的索引。 |
multiline | 檢查是否設置了(le) "m" 修飾符。 |
source | 返回 RegExp 模式的文(wén)本。 |
RegExp 對(duì)象方法
方法 | 描述 |
---|---|
compile() | 在 1.5 版中已棄用(yòng)。編譯正則表達式。 |
exec() | 測試字符串中的匹配項。返回第一個匹配項。 |
test() | 測試字符串中的匹配項。返回 true 或 false。 |
toString() | 返回正則表達式的字符串值。 |
RegExp 對(duì)象描述
RegExp 對(duì)象表示正則表達式,它是對(duì)字符串執行模式匹配的強大(dà)工(gōng)具。
直接量語法
/pattern/attributes
創建 RegExp 對(duì)象的語法:
new RegExp(pattern, attributes);
參數
參數 pattern 是一個字符串,指定了(le)正則表達式的模式或其他(tā)正則表達式。
參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和(hé) "m",分别用(yòng)于指定全局匹配、區(qū)分大(dà)小(xiǎo)寫的匹配和(hé)多行匹配。ECMAScript 标準化之前,不支持 m 屬性。如果 pattern 是正則表達式,而不是字符串,則必須省略該參數。
返回值
一個新的 RegExp 對(duì)象,具有指定的模式和(hé)标志。如果參數 pattern 是正則表達式而不是字符串,那麽 RegExp() 構造函數将用(yòng)與指定的 RegExp 相同的模式和(hé)标志創建一個新的 RegExp 對(duì)象。
如果不用(yòng) new 運算(suàn)符,而将 RegExp() 作(zuò)爲函數調用(yòng),那麽它的行爲與用(yòng) new 運算(suàn)符調用(yòng)時(shí)一樣,隻是當 pattern 是正則表達式時(shí),它隻返回 pattern,而不再創建一個新的 RegExp 對(duì)象。
抛出
SyntaxError - 如果 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和(hé) "m" 之外(wài)的字符,抛出該異常。
TypeError - 如果 pattern 是 RegExp 對(duì)象,但(dàn)沒有省略 attributes 參數,抛出該異常。
8888
支持正則表達式的 String 對(duì)象的方法
方法 | 描述 |
---|---|
search | 檢索與正則表達式相匹配的值。 |
match | 找到(dào)一個或多個正則表達式的匹配。 |
replace | 替換與正則表達式匹配的子串。 |
split | 把字符串分割爲字符串數組。 |