JavaScript 正則表示式
正則表示式是構成搜尋模式的字元序列。
搜尋模式可用於文字搜尋和文字替換操作。
什麼是正則表示式?
正則表示式是構成搜尋模式的字元序列。
當您在文字中搜索資料時,您可以使用此搜尋模式來描述您正在搜尋的內容。
正則表示式可以是一個單獨的字元,也可以是更復雜的模式。
正則表示式可用於執行所有型別的文字搜尋和文字替換操作。
語法
/pattern/modifiers;
示例
/w3schools/i;
示例說明
/w3schools/i 是一個正則表示式。
w3schools 是一個模式(用於搜尋)。
i 是一個修飾符(將搜尋修改為不區分大小寫)。
使用字串方法
在 JavaScript 中,正則表示式通常與兩個字串方法一起使用:search()
和 replace()
。
search()
方法使用表示式搜尋匹配項,並返回匹配項的位置。
replace()
方法返回修改後的字串,其中模式已被替換。
使用字串 search() 和字串
search()
方法搜尋字串中指定的字串,並返回匹配項的位置。
示例
使用字串在字串中搜索“W3schools”
let text = "Visit W3Schools!";
let n = text.search("W3Schools");
n 中的結果將是
6
使用字串 search() 和正則表示式
示例
使用正則表示式對字串中的“w3schools”執行不區分大小寫的搜尋
let text = "Visit W3Schools";
let n = text.search(/w3schools/i);
n 中的結果將是
6
使用字串 replace() 和字串
replace()
方法將字串中的指定值替換為另一個值。
let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");
自己動手試一試 »
使用字串 replace() 和正則表示式
示例
使用不區分大小寫的正則表示式將字串中的 Microsoft 替換為 W3Schools。
let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools");
res 中的結果將是
Visit W3Schools!
你注意到了嗎?
上述方法中可以使用正則表示式引數(而不是字串引數)。
正則表示式可以使您的搜尋功能更強大(例如,不區分大小寫)。
正則表示式修飾符
修飾符可用於執行不區分大小寫、更全域性的搜尋。
修飾符 | 描述 | 試一試 |
---|---|---|
i | 執行不區分大小寫的匹配 | 試一試 » |
g | 執行全域性匹配(查詢所有) | 試一試 » |
m | 執行多行匹配 | 試一試 » |
d | 執行開頭和結尾匹配(ES2022 中新增) | 試一試 » |
正則表示式模式
方括號用於查詢字元範圍。
表示式 | 描述 | 試一試 |
---|---|---|
[abc] | 查詢方括號之間的任意字元。 | 試一試 » |
[0-9] | 查詢方括號之間的任意數字。 | 試一試 » |
(x|y) | 查詢 | 分隔的任意選項。 | 試一試 » |
元字元是具有特殊含義的字元。
元字元 | 描述 | 試一試 |
---|---|---|
\d | 查詢數字 | 試一試 » |
\s | 查詢空白字元 | 試一試 » |
\b | 匹配單詞的開頭,例如:\bWORD,或單詞的結尾,例如:WORD\b |
試一試 »
試一試 » |
\uxxxx | 匹配十六進位制數字 xxxx 指定的 Unicode 字元 | 試一試 » |
量詞定義數量。
量詞 | 描述 | 試一試 |
---|---|---|
n+ | 匹配包含至少一個 n 的任何字串 | 試一試 » |
n* | 匹配包含零個或多個 n 的任何字串 | 試一試 » |
n? | 匹配包含零個或一個 n 的任何字串 | 試一試 » |
使用 RegExp 物件
在 JavaScript 中,RegExp 物件是具有預定義屬性和方法的正則表示式物件。
使用 test()
test()
方法是 RegExp 表示式方法。
它搜尋字串中的模式,並根據結果返回 true 或 false。
以下示例在字串中搜索字元“e”。
示例
const pattern = /e/;
pattern.test("The best things in life are free!");
由於字串中存在“e”,因此上述程式碼的輸出將是
true
您不必先將正則表示式放入變數中。上面的兩行可以縮短為一行。
/e/.test("The best things in life are free!");
使用 exec()
exec()
方法是 RegExp 表示式方法。
它搜尋字串中的指定模式,並以物件形式返回找到的文字。
如果未找到匹配項,則返回一個空的(null)物件。
以下示例在字串中搜索字元“e”。
完整的 RegExp 參考
有關完整參考,請訪問我們的完整的 JavaScript RegExp 參考。
參考包含所有 RegExp 屬性和方法的描述及示例。