語法:
exec() : RegExpObject.exec(string) match() : stringObject.match(string) stringObject.match(regexp)
知識點:
exec() 是RegExp對象的方法,而 match() 是String對象的方法。
都會返回包含第一個匹配項信息的數組;或者在沒有匹配項的情況下返回null。
返回的數組雖然是Array 的實例,但包含兩個額外的屬性:index 和 input。其中,index 表示匹配項在字符串中的位置,而 input 表示應用正則表達式的字符串。
在數組中,第一項是與整個模式匹配的字符串,其他項是與模式中的捕獲組匹配的字符串(如果模式中沒有捕獲組,則該數組只包含一項)。
測試:
對 match() 的測試代碼:
var text = "mom and dad and baby"; var pattern = /(mom and )?(dad and )?baby/; var matches = text.match(pattern);//pattern.exec(text); console.log(matches.index); console.log(matches.input); console.log(matches[0]); console.log(matches[1]); console.log(matches[2]);
對 match() 的測試結果截圖:
對 exec() 的測試代碼:
var text = "mom and dad and baby"; var pattern = /(mom and )?(dad and )?baby/; var matches = pattern.exec(text);//text.match(pattern); console.log(matches.index); console.log(matches.input); console.log(matches[0]); console.log(matches[1]); console.log(matches[2]);
對 exec() 的測試結果截圖:
String 對象方法
方法 描述 exec 檢索字符串中指定的值。返回找到的值,並確定其位置 test 檢索字符串中指定的值。返回 true 或 false。
String 對象方法
方法 描述 match() 找到一個或多個正則表達式的匹配。 replace() 替換與正則表達式匹配的子串。 search() 檢索與正則表達式相匹配的值。
關於JS中match() 和 exec() 返回值和屬性的測試就給大家介紹到這裡,希望對大家有所幫助!