亚洲最大看欧美片,亚洲图揄拍自拍另类图片,欧美精品v国产精品v呦,日本在线精品视频免费

  • 站長(zhǎng)資訊網(wǎng)
    最全最豐富的資訊網(wǎng)站

    看到一個(gè)JS正則的題

    貼出來與大家共勉。

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

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

    解決方法:
    (1)
    可以不使用g(全局參數(shù))也就是這樣-
    <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)
    網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)