奇怪的正则问题
<script>
s="10";
re=/^[0-9]*[0-9]$/g;
alert("1="+re.test(s));
alert(re+" "+s);
alert("2="+re.test(s));
</script>
两次正则返回的结果是不同的。好奇怪啊。好像如果匹配成功了下次匹配就会不成功
但是第一次不成功则第二次也不成功
难道匹配完以后re or s的值会变?但从中间打印的结果来看应该是没变啊。
奇怪。请大家解惑
问题点数:20、回复次数:2Top
1 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2005-04-02 01:37:31 得分 10
<script>
s="10";
re=/^[0-9]*[0-9]$/g;
alert("1="+re.test(s));
re.lastIndex=0
alert("2="+re.test(s));
</script>
如果用全局匹配模式,test只是搜索下一个匹配的位置,lastIndex记录着最后一次匹配的位置+1
这个不需要g参数呀Top
2 楼mjpclab(有只大猫猫 mjpclab.net)回复于 2005-04-02 01:43:50 得分 10
lastIndex记录着最后一次匹配的字符串末尾位置+1
如果test方法找不到匹配,会重置lastIndex=0Top




