位置:首頁 > 軟件操作教程 > 編程開發(fā) > JavaScript > 問題詳情

JavaScript 執(zhí)行匹配

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-24

使用正則表達(dá)式的eXeC()方法,可以執(zhí)行通用的匹配操作。其語法格式如下:

   regexp.exec(string)

   regexp表示正則表達(dá)式對象,參數(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á)式相匹配的文本(如果有的 話),以此類推。

    除了數(shù)組元素和丨ength屬性外,exec()方法還會返回下面兩個(gè)屬性。

    index:匹配文本的第1個(gè)字符的下標(biāo)位置。

    input:存儲被檢索的原型字符串,即參數(shù)string自身。


    在全局模式下,exec()方法和String.match()方法返回的結(jié)果不同。當(dāng)調(diào)用exec()方法時(shí),會為正則表達(dá)式對象定義lastlndex屬性,指定執(zhí)行下一次匹配的起始位置,同時(shí)返回匹配數(shù)組,與非全局模式下的數(shù)組結(jié)構(gòu)相同,而String.matCh()僅返回匹配文本組成的數(shù)組,沒有附加信息。因此,在全局模式下獲取完整的匹配信息只能使用execQ方法。

    當(dāng)exec()方法找到了與表達(dá)式相匹配的文本后,會重置lastlndex屬性為匹配文本的最后一個(gè)字符下標(biāo)位置加1,為下一次匹配設(shè)置起始位置。因此,通過反復(fù)調(diào)用execO方法可以遍歷字符串,實(shí)現(xiàn)全局匹配操作,如果找不到匹配文本時(shí),將返回null,并重置lastlndex屬性為0。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部