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

        看到一個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久久精品日本一区二区免费| 亚洲第一区精品日韩在线播放| 国产成人无码精品一区在线观看 | 亚洲AV无码久久精品蜜桃| 国产精品人人做人人爽| 国产精品你懂的| 国产亚洲欧美精品永久| 日韩精品无码久久久久久| 日韩熟女精品一区二区三区| 国产亚洲精品AA片在线观看不加载| 欧美精品亚洲精品日韩| 国产精品久久久久影院嫩草 | 久久久精品人妻一区二区三区四| 无码国内精品久久人妻麻豆按摩| 精品国产黑色丝袜高跟鞋| 91精品国产综合久久香蕉 | 91精品国产91久久久久久青草| 99精品免费视品| 九九精品99久久久香蕉| 少妇人妻偷人精品无码视频| 中文字幕久精品免费视频| 午夜精品久久久久9999高清| 欧美成人精品欧美一级乱黄一区二区精品在线 | 亚洲欧美一级久久精品| 日韩精品一区二区三区在线观看| 狠狠精品干练久久久无码中文字幕| 国产精品hd免费观看| 国产AⅤ精品一区二区三区久久| 99久久国产主播综合精品| 一区二区三区国产精品| 思思99热在线观看精品| 中文字幕精品视频| 国产精品99久久久久久董美香| 国产精品福利片免费看| 国产亚洲精品成人a v小说| 国产专区日韩精品欧美色| 久久99精品国产99久久6| 天天爽夜夜爽夜夜爽精品视频|