1. 程式人生 > >String 物件中的 正則表示式方法 match

String 物件中的 正則表示式方法 match

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

該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字串的位置,返回存放匹配結果的陣列。該陣列的內容依賴於 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 屬性。

例如

var pattern=/goo(gle)/i;

var str = 'chrome is a product of google';

var arr = str.match(pattern);

console.log(arr);

結果:


例如2

var pattern=/\w+/ig;

var str = 'chrome is a product of google';

var arr = str.match(pattern);

console.log(arr);//["chrome", "is", "a", "product", "of", "google"]