JavaScript RegExp 物件
以下資料來自w3cschool
RegExp 物件用於規定在文字中檢索的內容。
什麼是 RegExp?
RegExp 是正規表示式的縮寫。
當您檢索某個文字時,可以使用一種模式來描述要檢索的內容。RegExp 就是這種模式。
簡單的模式可以是一個單獨的字元。
更復雜的模式包括了更多的字元,並可用於解析、格式檢查、替換等等。
您可以規定字串中的檢索位置,以及要檢索的字元型別,等等。
定義 RegExp
RegExp 物件用於儲存檢索模式。
通過 new 關鍵詞來定義 RegExp 物件。以下程式碼定義了名為 patt1 的 RegExp 物件,其模式是 "e":
var patt1=new RegExp("e");
當您使用該 RegExp 物件在一個字串中檢索時,將尋找的是字元 "e"。
RegExp 物件的方法
RegExp 物件有 3 個方法:test()、exec() 以及 compile()。
test()
test() 方法檢索字串中的指定值。返回值是 true 或 false。
例子:
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free"));
由於該字串中存在字母 "e",以上程式碼的輸出將是:
true
exec()
exec() 方法檢索字串中的指定值。返回值是被找到的值。如果沒有發現匹配,則返回 null。
例子 1:
var patt1=new RegExp("e"); document.write(patt1.exec("The best things in life are free"));
由於該字串中存在字母 "e",以上程式碼的輸出將是:
e
例子 2:
您可以向 RegExp 物件新增第二個引數,以設定檢索。例如,如果需要找到所有某個字元的所有存在,則可以使用 "g" 引數 ("global")。
如需關於如何修改搜尋模式的完整資訊,請訪問我們的 RegExp 物件參考手冊。
在使用 "g" 引數時,exec() 的工作原理如下:
- 找到第一個 "e",並儲存其位置
- 如果再次執行 exec(),則從儲存的位置開始檢索,並找到下一個 "e",並儲存其位置
var patt1=new RegExp("e","g"); do { result=patt1.exec("The best things in life are free"); document.write(result); } while (result!=null)
由於這個字串中 6 個 "e" 字母,程式碼的輸出將是:
eeeeeenull
compile()
compile() 方法用於改變 RegExp。
compile() 既可以改變檢索模式,也可以新增或刪除第二個引數。
例子:
var patt1=new RegExp("e"); document.write(patt1.test("The best things in life are free")); patt1.compile("d"); document.write(patt1.test("The best things in life are free"));
由於字串中存在 "e",而沒有 "d",以上程式碼的輸出是:
truefalse
完整的 RegExp 物件參考手冊
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 引數,丟擲該異常。
方括號
方括號用於查詢某個範圍內的字元:
表示式 | 描述 |
---|---|
[abc] | 查詢方括號之間的任何字元。 |
[^abc] | 查詢任何不在方括號之間的字元。 |
[0-9] | 查詢任何從 0 至 9 的數字。 |
[a-z] | 查詢任何從小寫 a 到小寫 z 的字元。 |
[A-Z] | 查詢任何從大寫 A 到大寫 Z 的字元。 |
[A-z] | 查詢任何從大寫 A 到小寫 z 的字元。 |
[adgk] | 查詢給定集合內的任何字元。 |
[^adgk] | 查詢給定集合外的任何字元。 |
(red|blue|green) | 查詢任何指定的選項。 |
元字元
元字元(Metacharacter)是擁有特殊含義的字元:
元字元 | 描述 |
---|---|
. | 查詢單個字元,除了換行和行結束符。 |
\w | 查詢單詞字元。 |
\W | 查詢非單詞字元。 |
\d | 查詢數字。 |
\D | 查詢非數字字元。 |
\s | 查詢空白字元。 |
\S | 查詢非空白字元。 |
\b | 匹配單詞邊界。 |
\B | 匹配非單詞邊界。 |
\0 | 查詢 NUL 字元。 |
\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 的字串。 |
?=n | 匹配任何其後緊接指定字串 n 的字串。 |
?!n | 匹配任何其後沒有緊接指定字串 n 的字串。 |
RegExp 物件屬性
FF: Firefox, IE: Internet Explorer
屬性 | 描述 | FF | IE |
---|---|---|---|
global | RegExp 物件是否具有標誌 g。 | 1 | 4 |
ignoreCase | RegExp 物件是否具有標誌 i。 | 1 | 4 |
lastIndex | 一個整數,標示開始下一次匹配的字元位置。 | 1 | 4 |
multiline | RegExp 物件是否具有標誌 m。 | 1 | 4 |
source | 正規表示式的源文字。 | 1 | 4 |
RegExp 物件方法
FF: Firefox, IE: Internet Explorer
方法 | 描述 | FF | IE |
---|---|---|---|
compile | 編譯正規表示式。 | 1 | 4 |
exec | 檢索字串中指定的值。返回找到的值,並確定其位置。 | 1 | 4 |
test | 檢索字串中指定的值。返回 true 或 false。 | 1 | 4 |
支援正規表示式的 String 物件的方法
FF: Firefox, IE: Internet Explorer
方法 | 描述 | FF | IE |
---|---|---|---|
search | 檢索與正規表示式相匹配的值。 | 1 | 4 |
match | 找到一個或多個正規表示式的匹配。 | 1 | 4 |
replace | 替換與正規表示式匹配的子串。 | 1 | 4 |
split | 把字串分割為字串陣列。 | 1 | 4 |
如需可與 RegExp 物件一同使用所有屬性和方法的完整資訊,請訪問我們的 RegExp 物件參考手冊。
這個參考手冊包含了對 RegExp 物件中每個屬性和方法的詳細描述,以及使用的例子。
相關文章
- JavaScript RegExp物件JavaScript物件
- JavaScript RegExp(正規表示式) 物件JavaScript物件
- JavaScript中的Date,RegExp,Function物件JavaScriptFunction物件
- RegExp物件物件
- JS正規表示式精簡教程(JavaScript RegExp 物件)JSJavaScript物件
- Javascript中使用RegExp的簡略指南JavaScript
- Javascript 物件 – 字串物件JavaScript物件字串
- JavaScript物件JavaScript物件
- JavaScript 物件JavaScript物件
- Javascript 物件 – 數學物件JavaScript物件
- Javascript 物件 – 陣列物件JavaScript物件陣列
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javascript型別系統——正規表示式RegExp型別JavaScript型別
- 正規表示式RegExp物件的compile()函式的作用物件Compile函式
- JavaScript window物件JavaScript物件
- JavaScript Promise物件JavaScriptPromise物件
- JavaScript Array物件JavaScript物件
- JavaScript Symbol物件JavaScriptSymbol物件
- JavaScript Set物件JavaScript物件
- JavaScript Function物件JavaScriptFunction物件
- JavaScript Number 物件JavaScript物件
- JavaScript URL 物件JavaScript物件
- JavaScript Date 物件JavaScript物件
- JavaScript 物件 & 原型JavaScript物件原型
- JavaScript物件概述JavaScript物件
- JavaScript Promise 物件JavaScriptPromise物件
- JavaScript Object 物件JavaScriptObject物件
- JavaScript arguments 物件JavaScript物件
- JavaScript Global 物件JavaScript物件
- JavaScript Boolean 物件JavaScriptBoolean物件
- JavaScript File 物件JavaScript物件
- JavaScript Blob 物件JavaScript物件
- JavaScript Array 物件JavaScript物件
- javaScript之物件JavaScript物件
- JavaScript物件5JavaScript物件
- JavaScript document物件JavaScript物件
- JavaScript history 物件JavaScript物件
- JavaScript location 物件JavaScript物件