JavaScript 執(zhí)行匹配
使用正則表達(dá)式的eXeC()方法,可以執(zhí)行通用的匹配操作。其語(yǔ)法格式如下:
regexp.exec(string)
regexp表示正則表達(dá)式對(duì)象,參數(shù)string是要檢索的字符串。返回一個(gè)數(shù)組,其中存放匹配的結(jié)果。如果未找到匹配結(jié)果,則返回null。
返回?cái)?shù)組的第1個(gè)元素是與正則表達(dá)式相匹配的文本,第2個(gè)元素是與正則表達(dá)式的第1個(gè)子表達(dá)式相匹配的文本(如果有的話),第2個(gè)元素是與正則表達(dá)式的第2個(gè)子表達(dá)式相匹配的文本(如果有的 話),以此類(lèi)推。
除了數(shù)組元素和丨ength屬性外,exec()方法還會(huì)返回下面兩個(gè)屬性。
index:匹配文本的第1個(gè)字符的下標(biāo)位置。
input:存儲(chǔ)被檢索的原型字符串,即參數(shù)string自身。
在全局模式下,exec()方法和String.match()方法返回的結(jié)果不同。當(dāng)調(diào)用exec()方法時(shí),會(huì)為正則表達(dá)式對(duì)象定義lastlndex屬性,指定執(zhí)行下一次匹配的起始位置,同時(shí)返回匹配數(shù)組,與非全局模式下的數(shù)組結(jié)構(gòu)相同,而String.matCh()僅返回匹配文本組成的數(shù)組,沒(méi)有附加信息。因此,在全局模式下獲取完整的匹配信息只能使用execQ方法。
當(dāng)exec()方法找到了與表達(dá)式相匹配的文本后,會(huì)重置lastlndex屬性為匹配文本的最后一個(gè)字符下標(biāo)位置加1,為下一次匹配設(shè)置起始位置。因此,通過(guò)反復(fù)調(diào)用execO方法可以遍歷字符串,實(shí)現(xiàn)全局匹配操作,如果找不到匹配文本時(shí),將返回null,并重置lastlndex屬性為0。
點(diǎn)擊加載更多評(píng)論>>