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

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

 更新時(shí)間: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>

為什么第二個(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

相關(guān)文章

最新評(píng)論

祁东县| 故城县| 黎川县| 彝良县| 丰城市| 马边| 平罗县| 宝山区| 安龙县| 宁安市| 天台县| 临邑县| 恩平市| 新安县| 乐至县| 保亭| 永年县| 汾阳市| 长海县| 万宁市| 罗定市| 隆回县| 石嘴山市| 靖边县| 平度市| 桦南县| 井冈山市| 积石山| 巫山县| 武义县| 乐平市| 安西县| 正蓝旗| 长兴县| 大同市| 万州区| 迁西县| 乐东| 松潘县| 蒲江县| 茌平县|