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

看到一個JS正則的題

 更新時間:2007年01月09日 00:00:00   作者:  
貼出來與大家共勉。

先看一段代碼,
<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

相關文章

最新評論

阿拉尔市| 广德县| 安西县| 桃江县| 枝江市| 大埔县| 蛟河市| 阿克陶县| 屯昌县| 三都| 昌邑市| 河间市| 辉县市| 泰州市| 柳江县| 定远县| 兴业县| 延长县| 新乐市| 三明市| 大新县| 吴忠市| 孟津县| 平泉县| 策勒县| 潞城市| 太谷县| 财经| 平原县| 东台市| 黄石市| 壤塘县| 册亨县| 腾冲县| 盈江县| 海口市| 成武县| 清河县| 繁峙县| 万州区| 会昌县|