JavaScript RegExp 參考手冊

RegExp 對象

正則表達式是一種字符模式。

該模式用于對文本進行模式匹配的“搜索和替換”功能。

在 JavaScript 中,RegExp 對象是一種擁有屬性和方法的模式。

語法

/pattern/modifier(s);

實例

let pattern = /codew3c/i;

親自試一試

例子解釋:

codew3c 要搜索的模式
/codew3c/ 正則表達式
/codew3c/i 不區分大小寫的正則表達式

如需有關正則表達式的知識,請閱讀我們的 JavaScript RegExp 教程

修飾符

修飾符用于執行不區分大小寫和全局的搜索:

修飾符 描述
g 執行全局匹配(查找所有匹配而不是在第一個匹配后停止)。
i 執行不區分大小寫的匹配。
d 執行子字符串匹配。
m 執行多行匹配。

方括號

方括號用于查找某個范圍內的字符:

表達式 描述
[abc] 查找括號之間的任何字符。
[^abc] 查找任何不在方括號之間的字符。
[0-9] 查找任何從 0 至 9 的數字。
[^0-9] 查找任何不在括號內的字符(任何非數字)。
(x|y) 查找任何指定的選項。

元字符

元字符是具有特殊含義的字符:

元字符 描述
. 查找單個字符,除了換行符或行終止符。
\w 查找單詞字符。
\W 查找非單詞字符。
\d 查找數字。
\D 查找非數字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 在單詞的開頭/結尾查找匹配項,開頭如下:\bHI,結尾如下:HI\b。
\B 查找匹配項,但不在單詞的開頭/結尾處。
\0 查找 NULL 字符。
\n 查找換行符。
\f 查找換頁符。
\r 查找回車符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八進制數 xxx 規定的字符。
\xdd 查找以十六進制數 dd 規定的字符。
\udddd 查找以十六進制數 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 對象屬性

屬性 描述
constructor 返回創建 RegExp 對象原型的函數。
global 檢查是否設置了 "g" 修飾符。
ignoreCase 檢查是否設置了 "i" 修飾符。
lastIndex 規定開始下一個匹配的索引。
multiline 檢查是否設置了 "m" 修飾符。
source 返回 RegExp 模式的文本。

RegExp 對象方法

方法 描述
compile() 在 1.5 版中已棄用。編譯正則表達式。
exec() 測試字符串中的匹配項。返回第一個匹配項。
test() 測試字符串中的匹配項。返回 true 或 false。
toString() 返回正則表達式的字符串值。

RegExp 對象描述

RegExp 對象表示正則表達式,它是對字符串執行模式匹配的強大工具。

直接量語法

/pattern/attributes

創建 RegExp 對象的語法:

new RegExp(pattern, attributes);

參數

參數 pattern 是一個字符串,指定了正則表達式的模式或其他正則表達式。

參數 attributes 是一個可選的字符串,包含屬性 "g"、"i" 和 "m",分別用于指定全局匹配、區分大小寫的匹配和多行匹配。ECMAScript 標準化之前,不支持 m 屬性。如果 pattern 是正則表達式,而不是字符串,則必須省略該參數。

返回值

一個新的 RegExp 對象,具有指定的模式和標志。如果參數 pattern 是正則表達式而不是字符串,那么 RegExp() 構造函數將用與指定的 RegExp 相同的模式和標志創建一個新的 RegExp 對象。

如果不用 new 運算符,而將 RegExp() 作為函數調用,那么它的行為與用 new 運算符調用時一樣,只是當 pattern 是正則表達式時,它只返回 pattern,而不再創建一個新的 RegExp 對象。

拋出

SyntaxError - 如果 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和 "m" 之外的字符,拋出該異常。

TypeError - 如果 pattern 是 RegExp 對象,但沒有省略 attributes 參數,拋出該異常。

瀏覽器支持

/regexp/ 是 ECMAScript1 (ES1) 的特性。

所有瀏覽器都完全支持 ES1 (JavaScript 1997):

Chrome IE Edge Firefox Safari Opera
Chrome IE Edge Firefox Safari Opera
支持 支持 支持 支持 支持 支持

支持正則表達式的 String 對象的方法

方法 描述
search 檢索與正則表達式相匹配的值。
match 找到一個或多個正則表達式的匹配。
replace 替換與正則表達式匹配的子串。
split 把字符串分割為字符串數組。