js正則表達(dá)式之exec方法講解
功能說明:該函數(shù)通過對指定你的字符串進(jìn)行一次匹配檢測,獲取字符串中的第一個(gè)與正則表達(dá)式的內(nèi)容,并且將匹配的內(nèi)容和子匹配的結(jié)果存放在返回?cái)?shù)組中
基本方法:objReg.exec(string)
objReg,RegExp對象的名稱
string,要進(jìn)行匹配的字符串
正則表達(dá)式exec()函數(shù):
exec() 方法用于檢索字符串中的正則表達(dá)式的匹配。
返回值是一個(gè)數(shù)組,但是此數(shù)組的內(nèi)容和正則對象是否是全局匹配有著很大關(guān)系:
1.沒有g(shù)修飾符:
在非全局匹配模式下,此函數(shù)的作用和match()函數(shù)是一樣的,只能夠在字符串中匹配一次,如果沒有找到匹配的字符串,那么返回null,否則將返回一個(gè)數(shù)組,數(shù)組的第0個(gè)元素存儲(chǔ)的是匹配字符串,第1個(gè)元素存放的是第一個(gè)引用型分組(子表達(dá)式)匹配的字符串,第2個(gè)元素存放的是第二個(gè)引用型分組(子表達(dá)式)匹配的字符串,依次類推。同時(shí)此數(shù)組還包括兩個(gè)對象屬性,index屬性聲明的是匹配字符串的起始字符在要匹配的完整字符串中的位置,input屬性聲明的是對要匹配的完整字符串的引用。
特別說明:
在非全局匹配模式下,IE瀏覽器還會(huì)具有l(wèi)astIndex屬性,不過這時(shí)是只讀的。
2.具有g(shù)修飾符:
在全局匹配模式下,此函數(shù)返回值同樣是一個(gè)數(shù)組,并且也只能夠在字符串中匹配一次。不過此時(shí),此函數(shù)一般會(huì)和lastIndex屬性匹配使用,此函數(shù)會(huì)在lastIndex屬性指定的字符處開始檢索字符串,當(dāng)exec()找到與表達(dá)式相匹配的字符串時(shí),在匹配后,它將lastIndex 屬性設(shè)置為匹配字符串的最后一個(gè)字符的下一個(gè)位置??梢酝ㄟ^反復(fù)調(diào)用exec()函數(shù)遍歷字符串中的所有匹配,當(dāng)exec()函數(shù)再也找不到匹配的文本時(shí),它將返回null,并把lastIndex 屬性重置為0。
數(shù)組的內(nèi)容結(jié)構(gòu)和沒有g(shù)修飾符時(shí)完全相同。
特別說明:
如果在一個(gè)字符串中完成了一次模式匹配之后要開始檢索新的字符串,就必須手動(dòng)地把lastIndex屬性重置為0。
語法結(jié)構(gòu):
RegExpObject.exec(string)
參數(shù)列表如下:
參數(shù)名稱 | 語義解釋 |
string | 必需。要檢索的字符串。 |
瀏覽器支持:
IE瀏覽器支持此方法。
火狐瀏覽器支持此方法。
谷歌瀏覽器支持此方法。
實(shí)例代碼:
實(shí)例一:
var str="I love antzone ,this is animate"; var reg=/an/; console.log(reg.exec(str));
實(shí)例二:
var str="the name 123 and 456"; var reg=/\d/g; reg.lastIndex=15; console.log(reg.exec(str));
在全局模式下可以使用lastIndex屬性設(shè)置在字符串中查找指定字符時(shí)開始的位置。
<html> <script language="javascript" type="text/javascript"> //設(shè)置匹配的字符串 var objStr="我的手機(jī)號13522222222,他的手機(jī)號13288888888,她的手機(jī)號碼13699999999"; //設(shè)置正則表達(dá)式,匹配以13開頭11位字符串,全局匹配 var reg=/13(/d)(/d{8})/g; //執(zhí)行exec函數(shù),盡管是全局匹配的正則表達(dá)式,但是exec方法只對指定的字符串進(jìn)行一次匹配,獲取字符串中第一個(gè)與正則表達(dá)式想匹配的內(nèi)容,并且將匹配內(nèi)容和子匹配的結(jié)果存儲(chǔ)到返回的數(shù)組中 var arr=reg.exec(objStr); //循環(huán)輸出結(jié)果 for(var i=0;i<arr.length;i++){ document.write("<li>"+arr[i]+"<br>"); } </script> </html>
相關(guān)文章
關(guān)于preg_replace函數(shù)的問題講解
關(guān)于preg_replace函數(shù)的問題講解...2007-03-03應(yīng)該如何構(gòu)造復(fù)雜的正則表達(dá)式
昨天Snopo問我如何寫一段正則表達(dá)式,來提取sql的條件語句。解答之余,想寫一篇文章介紹一下經(jīng)驗(yàn)2012-09-09如何使用正則表達(dá)式對輸入數(shù)字進(jìn)行匹配詳解
正則表達(dá)式用于字符串處理、表單驗(yàn)證等場合,實(shí)用高效,下面這篇文章主要給大家介紹了關(guān)于如何使用正則表達(dá)式對輸入數(shù)字進(jìn)行匹配的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10