应该这样做。用test和exec时,使用g参数后,要手动把lastIndex=0来还原。var objReg = /^[a-zA-Z]{1}(:){1}$/gi;
alert(objReg.test("a:"));
objReg.lastIndex=0;
alert(objReg.test("a:"));原因:
test相等于执行exec方法,exec方法带有g参数时,下次匹配时,自动会跳到lastIndex后的位置,也就是你这里的2,所以下次再匹配时,会是false的原因,当然你可以不用g参数,结果也是一样的 如下:
var objReg = /^[a-zA-Z]{1}(:){1}$/i;
alert(objReg.test("a:"));
alert(objReg.test("a:"));
alert(objReg.test("a:"));
objReg.lastIndex=0;
alert(objReg.test("a:"));原因:
test相等于执行exec方法,exec方法带有g参数时,下次匹配时,自动会跳到lastIndex后的位置,也就是你这里的2,所以下次再匹配时,会是false的原因,当然你可以不用g参数,结果也是一样的 如下:
var objReg = /^[a-zA-Z]{1}(:){1}$/i;
alert(objReg.test("a:"));
alert(objReg.test("a:"));
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货