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
留言列表