javascript match是一種用於在字串內檢索指定的值,或找到一個或多個正則表達式的匹配的方法,該方法類似indexOf()和lastIndexOf(),但是它返回指定的值,而不是字串的位置。
本文操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
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()。
【推薦學習:js基礎教學】
範例
範例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
以上是javascript match什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!