做(zuò)自(zì)由與創造的先行(xíng)者

JavaScript RegExp

JavaScript中文手冊

RegExp 對象

正則表達式是一(yī)種字符模式。

該模式用于對文本進行(xíng)模式匹配的“搜索和(hé)替換”功能(néng)。

在 JavaScript 中,RegExp 對象是一(yī)種擁有屬性和(hé)方法的模式。

語法

/pattern/modifier(s);

實例

let pattern = /w3school/i;

修飾符

修飾符用于執行(xíng)不區(qū)分大小寫和(hé)全局的搜索:

修飾符 描述
g 執行(xíng)全局匹配(查找所有匹配而不是在第一(yī)個匹配後停止)。
i 執行(xíng)不區(qū)分大小寫的匹配。
m 執行(xíng)多行(xíng)匹配。

方括号

方括号用于查找某個範圍內(nèi)的字符:

表達式 描述
[abc] 查找括号之間(jiān)的任何字符。
[^abc] 查找任何不在方括号之間(jiān)的字符。
[0-9] 查找任何從(cóng) 0 至 9 的數(shù)字。
[^0-9] 查找任何不在括号內(nèi)的字符(任何非數(shù)字)。
(x|y) 查找任何指定的選項。

元字符

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

元字符 描述
. 查找單個字符,除了(le)換行(xíng)符或行(xíng)終止符。
\w 查找單詞字符。
\W 查找非單詞字符。
\d 查找數(shù)字。
\D 查找非數(shù)字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 在單詞的開(kāi)頭/結尾查找匹配項,開(kāi)頭如(rú)下(xià):\bHI,結尾如(rú)下(xià):HI\b。
\B 查找匹配項,但(dàn)不在單詞的開(kāi)頭/結尾處。
\0 查找 NULL 字符。
\n 查找換行(xíng)符。
\f 查找換頁符。
\r 查找回車符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八進制數(shù) xxx 規定的字符。
\xdd 查找以十六進制數(shù) dd 規定的字符。
\uxxxx 查找以十六進制數(shù) xxxx 規定的 Unicode 字符。

量詞

量詞 描述
n+ 匹配任何包含至少(shǎo)一(yī)個 n 的字符串。
n* 匹配任何包含零個或多個 n 的字符串。
n? 匹配任何包含零個或一(yī)個 n 的字符串。
n{X} 匹配包含 X 個 n 的序列的字符串。
n{X,Y} 匹配包含 X 至 Y 個 n 的序列的字符串。
n{X,} 匹配包含至少(shǎo) X 個 n 的序列的字符串。
n$ 匹配任何以 n 結尾的字符串。
^n 匹配任何以 n 開(kāi)頭的字符串。
?=n 匹配任何其後緊接指定字符串 n 的字符串。
?!n 匹配任何其後沒有緊接指定字符串 n 的字符串。

RegExp 對象屬性

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

RegExp 對象方法

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

RegExp 對象描述

RegExp 對象表示正則表達式,它是對字符串執行(xíng)模式匹配的強大工(gōng)具。

直接量語法

/pattern/attributes

創建 RegExp 對象的語法:

new RegExp(pattern, attributes);

參數(shù)

參數(shù) pattern 是一(yī)個字符串,指定了(le)正則表達式的模式或其他(tā)正則表達式。

參數(shù) attributes 是一(yī)個可(kě)選的字符串,包含屬性 "g"、"i" 和(hé) "m",分别用于指定全局匹配、區(qū)分大小寫的匹配和(hé)多行(xíng)匹配。ECMAScript 标準化之前,不支持 m 屬性。如(rú)果 pattern 是正則表達式,而不是字符串,則必須省略該參數(shù)。

返回值

一(yī)個新的 RegExp 對象,具有指定的模式和(hé)标志。如(rú)果參數(shù) pattern 是正則表達式而不是字符串,那(nà)麽 RegExp() 構造函數(shù)将用與指定的 RegExp 相同的模式和(hé)标志創建一(yī)個新的 RegExp 對象。

如(rú)果不用 new 運算符,而将 RegExp() 作(zuò)為(wèi)函數(shù)調用,那(nà)麽它的行(xíng)為(wèi)與用 new 運算符調用時(shí)一(yī)樣,隻是當 pattern 是正則表達式時(shí),它隻返回 pattern,而不再創建一(yī)個新的 RegExp 對象。

抛出

SyntaxError - 如(rú)果 pattern 不是合法的正則表達式,或 attributes 含有 "g"、"i" 和(hé) "m" 之外(wài)的字符,抛出該異常。

TypeError - 如(rú)果 pattern 是 RegExp 對象,但(dàn)沒有省略 attributes 參數(shù),抛出該異常。

8888

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

方法 描述
search 檢索與正則表達式相匹配的值。
match 找到一(yī)個或多個正則表達式的匹配。
replace 替換與正則表達式匹配的子串。
split 把字符串分割為(wèi)字符串數(shù)組。
網站建設開(kāi)發|APP設計開(kāi)發|小程序建設開(kāi)發
下(xià)一(yī)篇:JavaScript String
上(shàng)一(yī)篇:JavaScript Number