下面的代码会导致 “不确定” 的lastIndex的:一个奇怪的正则表达式的问题
var a = /cat/g;
var l = "A test sentence containing cat and dog.";
var r = a.exec(l);
document.write(r.lastIndex);
然而,它完美的r.index(和r.input)。
我正在使用Firefox。有人有线索吗?
编辑:好的,上面的代码在IE中完美工作!此外,在Firefox中,如果不是在第5行调用r.lastIndex,而是调用a.lastIndex,它可以很好地工作。看起来,Firefox不会在结果中返回lastIndex属性 - 而只是为调用exec()的模式设置属性。有趣的是IE设置了两者。
lastIndex的也是)执委会(返回的结果的性质,以及该模式的调用属性exec() – 2009-08-25 09:16:28
@Crimson:不,'lastIndex'不是'exec'返回值的属性:'r.hasOwnProperty(“lastIndex”)'returns * false *。另见https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/exec#Description – Gumbo 2009-08-25 09:21:09