站長資訊網
        最全最豐富的資訊網站

        看到一個JS正則的題

        貼出來與大家共勉。

        先看一段代碼,
        <script>
        var objReg = /^[a-zA-Z]{1}(:){1}$/gi;
        alert(objReg.test(“a:”));//返回true
        alert(objReg.test(“a:”));//返回false
        </script>

        為什么第二個test會返回false?是不是覺得奇怪。
        原因我解答如下:
        test實際上與exec方法的執(zhí)行方法是一致的,只是返回值不一樣。test返回的是true or false(如果exec返回的不是null),exec返回的是pattern(匹配)。
        而exec的執(zhí)行過程為:帶有g參數時,下次匹配時,自動會跳到lastIndex后的位置,也就是這里的第2個位置。而這個位置與pattern顯然不匹配。因此返回false。

        解決方法:
        (1)
        可以不使用g(全局參數)也就是這樣-
        <script>
        var objReg = /^[a-zA-Z]{1}(:){1}$/i;
        alert(objReg.test(“a:”));//返回true
        alert(objReg.test(“a:”));//返回true
        </script>

        (2)
        可以用lastIndex=0來還原-
        var objReg = /^[a-zA-Z]{1}(:){1}$/gi;
        alert(objReg.test(“a:”));//返回true
        objReg.lastIndex=0;
        alert(objReg.test(“a:”));//返回true

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩精品久久久久久免费| 久久精品国产99国产精品澳门 | 欧美精品丝袜久久久中文字幕| 人妻少妇精品视频一区二区三区| 精品999在线| 精品久久人人做人人爽综合| 午夜精品久久久久9999高清| 国产精品99久久久久久宅男 | 四虎国产精品免费入口| 无码精品视频一区二区三区| 久久精品国产亚洲av瑜伽| 四虎精品成人免费永久| 成人国产精品高清在线观看| 四虎影视永久在线观看精品| 久久亚洲精品无码播放| 国产精品久久久久一区二区三区| 免费91麻豆精品国产自产在线观看 | 精品久久久噜噜噜久久久| 亚洲А∨精品天堂在线 | 99国产精品无码| 国产欧美精品AAAAAA片| 国内精品久久久久久99蜜桃| 久久久免费精品re6| 无码国内精品久久人妻蜜桃| 曰韩精品无码一区二区三区 | 久久国产乱子伦精品免费午夜| 国产精品天干天干在线综合| 国产香蕉国产精品偷在线观看 | 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 永久无码精品三区在线4| 麻豆精品| 亚洲精品国产日韩无码AV永久免费网| 欧美成人精品一区二三区在线观看 | 狠狠精品干练久久久无码中文字幕 | 亚洲精品国产成人影院| 亚洲精品国产综合久久一线| 亚洲中文字幕久久精品无码APP | 亚洲国产精品成人精品无码区在线| 午夜精品久久久久久影视777| 亚洲精品乱码久久久久久蜜桃 | 国产欧美精品一区二区色综合|