最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2011年04月26日 23:31:18   作者:  
先看一道JavaScript題目,據(jù)說是國內(nèi)某知名互聯(lián)網(wǎng)企業(yè)的JavaScript筆試題,如果對正則的全局匹配模式不了解的話可能會對下面的輸出結(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á)式對象時如果使用了“g”標(biāo)識符或者設(shè)置它了的global屬性值為ture時,那么新創(chuàng)建的正則表達(dá)式對象將使用模式對要將要匹配的字符串進(jìn)行全局匹配。在全局匹配模式下可以對指定要查找的字符串執(zhí)行多次匹配。每次匹配使用當(dāng)前正則對象的lastIndex屬性的值作為在目標(biāo)字符串中開始查找的起始位置。lastIndex屬性的初始值為0,找到匹配的項(xiàng)后lastIndex的值被重置為匹配內(nèi)容的下一個字符在字符串中的位置索引,用來標(biāo)識下次執(zhí)行匹配時開始查找的位置。如果找不到匹配的項(xiàng)lastIndex的值會被設(shè)置為0。當(dāng)沒有設(shè)置正則對象的全局匹配標(biāo)志時lastIndex屬性的值始終為0,每次執(zhí)行匹配僅查找字符串中第一個匹配的項(xiàng)??梢酝ㄏ旅娴拇a來查看在執(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)方法

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

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

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

相關(guān)文章

最新評論

宁河县| 东乡| 东至县| 饶阳县| 太康县| 香港| 易门县| 松江区| 清丰县| 志丹县| 玉田县| 五家渠市| 来宾市| 宜黄县| 漾濞| 汉阴县| 博湖县| 涪陵区| 辽宁省| 大洼县| 阿合奇县| 汶川县| 灵宝市| 五家渠市| 行唐县| 阳泉市| 海阳市| 镇坪县| 伊春市| 林西县| 青阳县| 临清市| 贵州省| 房产| 休宁县| 公安县| 台中县| 阳原县| 武宁县| 三明市| 广昌县|