close

JavaScript match() 方法

定義和用法

match() 方法可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。

該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

語法

stringObject.match(searchvalue)
stringObject.match(regexp)
参數描述
searchvalue 必需。規定要檢索的字符串值。
regexp 必需。規定要匹配的模式的 RegExp 對象。如果該参數不是 RegExp 對象,則需要首先把它傳遞给 RegExp 構造函數,將其轉換为 RegExp 對象。

返回值

存放匹配結果的數組。該數組的內容依賴於 regexp 是否具有全局標志 g。

說明

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

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

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

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

實例

例子 1

在本例中,我們將在 "Hello world!" 中進行不同的檢索:

<script type="text/javascript">

var str="Hello world!"
document.write(str.match("world") + "<br />")
document.write(str.match("World") + "<br />")
document.write(str.match("worlld") + "<br />")
document.write(str.match("world!"))

</script>

輸出:

world
null
null
world!

例子 2

在本例中,我們將使用全局匹配的正則表達式來檢索字符串中的所有數字:

<script type="text/javascript">

var str="1 plus 2 equal 3"
document.write(str.match(/\d+/g))

</script>

輸出:

1,2,3
自:http://www.stackdoc.com/a/w3school/js/jsref_match.asp.htm
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 惡魔php獵人 的頭像
    惡魔php獵人

    惡魔php獵人的部落格

    惡魔php獵人 發表在 痞客邦 留言(0) 人氣()