问个弱弱的while问题...
function RegExpTest(){
var ver = Number(ScriptEngineMajorVersion() + ". " + ScriptEngineMinorVersion())
if (ver > = 5.5){ // 测试 JScript 的版本。
var src = "The rain in Spain falls mainly in the plain. ";
var re = /\w+/g; // 创建正则表达式模式。
var arr;
while ((arr = re.exec(src)) != null)
document.write(arr.index + "- " + arr.lastIndex + "\t " + arr);
}
else{
alert( "请使用 JScript 的更新版本 ");
}
}
--------------------------------
上面是从MS的JS手册里摘的一段?
我不明白while的条件
(arr = re.exec(src)) != null
我认为这个条件永远是true...
应该是个死循环啊...
为什么把正则匹配到的词都读出来后就结束循环了呢?
而且为什么会读出所有的匹配?
var re = /\w+/g;
我把正则条件改了改..
/\w+/ 只匹配第1个词
这时候却成为了死循环?
这和我本来认为可能是死循环却一致了?为什么?
如果按当没匹配的时候自动条出循环..为什么仅一个匹配的时候却不是?
------解决方案--------------------null == undefined 返回 true
------解决方案--------------------如果 exec 方法没有找到匹配,则它返回 null
------解决方案--------------------alert((arr = null) != null);
false