欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript中正則表達(dá)式的全局匹配模式分析

 更新時(shí)間:2011年04月26日 23:31:18   作者:  
先看一道JavaScript題目,據(jù)說(shuō)是國(guó)內(nèi)某知名互聯(lián)網(wǎng)企業(yè)的JavaScript筆試題,如果對(duì)正則的全局匹配模式不了解的話(huà)可能會(huì)對(duì)下面的輸出結(jié)果感到疑惑。
復(fù)制代碼 代碼如下:

var str = "123#abc";
var re = /abc/ig;
console.log(re.test(str)); //輸出ture
console.log(re.test(str)); //輸出false
console.log(re.test(str)); //輸出ture
console.log(re.test(str)); //輸出false

在創(chuàng)建正則表達(dá)式對(duì)象時(shí)如果使用了“g”標(biāo)識(shí)符或者設(shè)置它了的global屬性值為ture時(shí),那么新創(chuàng)建的正則表達(dá)式對(duì)象將使用模式對(duì)要將要匹配的字符串進(jìn)行全局匹配。在全局匹配模式下可以對(duì)指定要查找的字符串執(zhí)行多次匹配。每次匹配使用當(dāng)前正則對(duì)象的lastIndex屬性的值作為在目標(biāo)字符串中開(kāi)始查找的起始位置。lastIndex屬性的初始值為0,找到匹配的項(xiàng)后lastIndex的值被重置為匹配內(nèi)容的下一個(gè)字符在字符串中的位置索引,用來(lái)標(biāo)識(shí)下次執(zhí)行匹配時(shí)開(kāi)始查找的位置。如果找不到匹配的項(xiàng)lastIndex的值會(huì)被設(shè)置為0。當(dāng)沒(méi)有設(shè)置正則對(duì)象的全局匹配標(biāo)志時(shí)lastIndex屬性的值始終為0,每次執(zhí)行匹配僅查找字符串中第一個(gè)匹配的項(xiàng)??梢酝ㄏ旅娴拇a來(lái)查看在執(zhí)行匹配相應(yīng)的lastIndex 屬性的值。
復(fù)制代碼 代碼如下:

var str = "123#abc";
var re = /abc/ig;
console.log(re.test(str)); //輸出ture
console.log(re.lastIndex); //輸出7
console.log(re.test(str)); //輸出false
console.log(re.lastIndex); //輸出0
console.log(re.test(str)); //輸出ture
console.log(re.lastIndex); //輸出7
console.log(re.test(str)); //輸出false
console.log(re.lastIndex); //輸出0

關(guān)于RegExp.prototype.exec(str)方法和String.prototype.math(rgExp)方法

正則對(duì)象的test方法返回值為true或flase,在僅需要檢測(cè)目標(biāo)字符串與指定模式是否匹配,但不需要獲取匹配內(nèi)容時(shí)這個(gè)方法非常有用。當(dāng)需要獲取匹配結(jié)果時(shí)就需要用RegExp類(lèi)型的exec(str)方法或String類(lèi)型的match(rgExp)方法。

RegExp.prototype.exec(str)方法返回NULL或返會(huì)一個(gè)數(shù)組,在數(shù)組的第0個(gè)元素存放的是在字符串str中查找到的匹配內(nèi)容,1到n個(gè)元素返回的是在模式中使用括號(hào)"()"指定的子匹配項(xiàng)的內(nèi)容。

在沒(méi)有使用全局標(biāo)志時(shí)String.prototype.math(rgExp)方法和RegExp.prototype.exec(str)的行為類(lèi)似。當(dāng)設(shè)置了全局匹配標(biāo)志時(shí)String.prototype.math(rgExp)方法返回的數(shù)組項(xiàng)元素0到n中包含了所有匹配到的項(xiàng)不包含子匹配項(xiàng)。這時(shí)可以使用RegExp.$1..$9獲取9個(gè)子匹配。

相關(guān)文章

  • 自己的js工具 Event封裝

    自己的js工具 Event封裝

    說(shuō)到瀏覽器中的event,相信不少人都很頭疼,ie的event大部分時(shí)候都可以獲取到
    2009-08-08
  • iframe的onload在Chrome/Opera中執(zhí)行兩次Bug的解決方法

    iframe的onload在Chrome/Opera中執(zhí)行兩次Bug的解決方法

    創(chuàng)建iframe對(duì)象,添加load事件, 再將iframe添加到body中。Chrome/Opera中會(huì)造成load事件的handler執(zhí)行兩次。
    2011-03-03
  • 瀏覽器兼容的JS寫(xiě)法總結(jié)

    瀏覽器兼容的JS寫(xiě)法總結(jié)

    瀏覽器兼容的JS寫(xiě)法總結(jié),涵蓋的內(nèi)容很全面,感興趣的小伙伴們可以參考一下
    2016-04-04
  • JS動(dòng)畫(huà)效果代碼3

    JS動(dòng)畫(huà)效果代碼3

    用js實(shí)現(xiàn)的動(dòng)畫(huà)效果
    2008-04-04
  • 實(shí)例詳解JSON取值(key是中文或者數(shù)字)方式

    實(shí)例詳解JSON取值(key是中文或者數(shù)字)方式

    本文通過(guò)實(shí)例詳解JSON取值(key是中文或者數(shù)字)方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-08-08
  • 事件模型在各瀏覽器中存在差異

    事件模型在各瀏覽器中存在差異

    根據(jù) W3C DOM 2 Events 描述,EventTarget 接口被所有支持 DOM 事件模型的節(jié)點(diǎn)(Node)實(shí)現(xiàn)。 該接口提供addEventListener 和removeEventListener方法,用來(lái)綁定或解綁一個(gè) EventListeners 接口到一個(gè) EventTarget。
    2010-10-10
  • js代碼實(shí)現(xiàn)下拉菜單【推薦】

    js代碼實(shí)現(xiàn)下拉菜單【推薦】

    本篇文章主要分享了js代碼實(shí)現(xiàn)下拉菜單的代碼,可復(fù)制直接運(yùn)行看效果,具有很好的參考價(jià)值,跟小編一起來(lái)看下吧
    2016-12-12
  • javascript判斷chrome瀏覽器的方法

    javascript判斷chrome瀏覽器的方法

    這篇文章主要介紹了javascript判斷chrome瀏覽器的方法,通過(guò)userAgent判斷檢測(cè)一下userAgent返回的字符串里面是否包含“Chrome”,需要的朋友可以參考下
    2014-03-03
  • JavaScript函數(shù)Call、Apply原理實(shí)例解析

    JavaScript函數(shù)Call、Apply原理實(shí)例解析

    這篇文章主要介紹了JavaScript函數(shù)Call、Apply原理實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • js檢測(cè)用戶(hù)輸入密碼強(qiáng)度

    js檢測(cè)用戶(hù)輸入密碼強(qiáng)度

    這篇文章主要為大家詳細(xì)介紹了js如何實(shí)現(xiàn)檢測(cè)用戶(hù)輸入密碼強(qiáng)度,從四個(gè)方面檢測(cè)用戶(hù)輸入的密碼的強(qiáng)度的,感興趣的小伙伴們可以參考一下
    2015-10-10

最新評(píng)論