看以下这段代码.
var
re
=
/^
d
+
$
/
g;
var str = " 3333 " ;
var s1 = re.test(str) ; // 显示True
var s2 ;
for ( var i = 0 ;i < 1 ;i ++ ) ... {
s2 = re.test(str);
}
alert( " s1= " + s1 + " s2= " + s2); // 显示s1=true s2=false
var str = " 3333 " ;
var s1 = re.test(str) ; // 显示True
var s2 ;
for ( var i = 0 ;i < 1 ;i ++ ) ... {
s2 = re.test(str);
}
alert( " s1= " + s1 + " s2= " + s2); // 显示s1=true s2=false
正则表达式变量定义为全局,在for循环内执行会不正常,for循环外执行为正常。
调试了半天才得出的结论,郁闷……