做自(zì)由與創造的先行者

JavaScript RegExp

JavaScript中文(wén)手冊

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 把字符串分割爲字符串數組。
網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:JavaScript String
上(shàng)一篇:JavaScript Number