JavaScript String match() 方法

定義和用法

match() 方法將字符串與正則表達式進行匹配。

提示:如果搜索值為字符串,則轉換為正則表達式。

match() 方法返回包含匹配項的數組。

如果未找到匹配項,則 match() 方法返回 null

另請參閱:

正則表達式教程

正則表達式參考手冊

String match() 與 String search() 的區別

match() 方法返回匹配數組。

search() 方法返回第一個匹配的位置。

實例

例子 1

使用字符串搜索 "ain" :

let text = "The rain in SPAIN stays mainly in the plain";
text.match("ain");

親自試一試

例子 2

使用正則表達式搜索 "ain" :

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/);

親自試一試

例子 3

對 "ain" 的全局搜索:

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/g);

親自試一試

例子 4

全局、不區分大小寫的搜索:

let text = "The rain in SPAIN stays mainly in the plain";
text.match(/ain/gi);

親自試一試

語法

string.match(regexp)

參數

參數 描述
regexp

必需。搜索值。

正則表達式(或將被轉換為正則表達式的字符串)。

返回值

類型 描述
數組或 null

包含匹配項的數組。

如果沒有找到匹配項,則返回 null

技術細節

參數 regexp

該參數指定要匹配的模式的 RegExp 對象。如果該參數不是 RegExp 對象,則首先將把它傳遞給 RegExp() 構造函數,把它轉換成 RegExp 對象。

返回值

存放匹配結果的數組。該數組的內容依賴于 regexp 是否具有全局標志 g。下面詳細說明了這個返回值。

說明

match() 方法將檢索字符串 string,以找到一個或多個與 regexp 匹配的文本。這個方法的行為在很大程度上有賴于 regexp 是否具有標志 g

如果 regexp 沒有標志 g,那么 match() 方法就只能在 string 中執行一次匹配。如果沒有找到任何匹配的文本,match() 將返回 null。否則,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其余的元素存放的是與正則表達式的子表達式匹配的文本。除了這些常規的數組元素之外,返回的數組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字符在 string 中的位置,input 屬性聲明的是對 string 的引用。

如果 regexp 具有標志 g,則 match() 方法將執行全局檢索,找到 string 中的所有匹配子字符串。若沒有找到任何匹配的子串,則返回 null。如果找到了一個或多個匹配子串,則返回一個數組。不過全局匹配返回的數組的內容與前者大不相同,它的數組元素中存放的是 string 中所有的匹配子串,而且也沒有 index 屬性或 input 屬性。

注意:在全局檢索模式下,match() 即不提供與子表達式匹配的文本的信息,也不聲明每個匹配子串的位置。如果您需要這些全局檢索的信息,可以使用 RegExp.exec()

正則表達式搜索方法

在 JavaScript 中,正則表達式文本搜索可以用不同的方法完成。

通過將模式作為正則表達式,這些是最常用的方法:

示例 描述
text.match(pattern) 字符串方法 match()
text.search(pattern) 字符串方法 search()
pattern.exec(text) 正則表達式方法 exec()
pattern.test(text) 正則表達式方法 test()

瀏覽器支持

match() 是 ECMAScript1 (ES1) 特性。

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

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

相關頁面

JavaScript 字符串

JavaScript 字符串方法

JavaScript 字符串搜索