应该这样做。用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:"));