一、JS正則中exec與match的區(qū)別
1、匹配多個結(jié)果不同
exec()方法會匹配并返回所有滿足正則表達(dá)式條件的結(jié)果,而match()方法只會返回名列前茅個滿足條件的結(jié)果。如果需要匹配多個結(jié)果,需要多次調(diào)用match()方法,或者使用exec()方法。
2、返回結(jié)果格式不同
exec()方法返回的結(jié)果是一個數(shù)組,數(shù)組中的元素包含匹配到的字符串及其相關(guān)信息,例如匹配到的字符串、匹配到的位置等。而match()方法只返回匹配到的字符串,不返回相關(guān)信息。
3、正則表達(dá)式的使用不同
在使用exec()方法時,需要在正則表達(dá)式中設(shè)置全局匹配標(biāo)志(g),否則每次調(diào)用exec()方法只會返回名列前茅個匹配結(jié)果。而match()方法則不需要設(shè)置全局匹配標(biāo)志。
4、循環(huán)匹配不同
由于exec()方法會返回所有匹配到的結(jié)果,因此可以通過循環(huán)來遍歷所有匹配結(jié)果。而match()方法則只返回名列前茅個匹配結(jié)果,需要多次調(diào)用match()方法才能匹配到所有結(jié)果。
5、String對象的使用不同
match()方法是String對象的一個方法,可以直接在字符串上調(diào)用,而exec()方法則是RegExp對象的一個方法,需要在正則表達(dá)式上調(diào)用。