1. 程式人生 > >javascript match()函式匹配正則表示式時的返回值問題

javascript match()函式匹配正則表示式時的返回值問題

語法
stringObject.match(regexp)

返回值
返回匹配結果的陣列。該陣列的內容依賴於 regexp 是否具有全域性標誌 g。

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

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

例子:

<script type="text/javascript">var str="1 plus 2 equal 3"document.write(str.match(/\d+/g))</script>

輸出:

1,2,3 

Match Example

var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;(i 指不區分大小寫)

var rs = str.match(regexp);

//rs= Array('A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e');

相關資訊:

http://www.w3school.com.cn/jsref/jsref_match.asp