我在 Firefox 10 和 11 中使用正则表达式函数 exec() 时遇到了问题。
该函数在被多次调用时似乎表现不稳定。在正确的结果中,返回null
的也不少。在 Safari 5.1.3、Chrome 18 和上述 Firefox 版本中,我只能在 Firefox 中看到该问题。
我创建了一个 JSFiddle 来演示这个问题:http://jsfiddle.net/KSH3S/ , 来源:
var i, x = "";
for (i = 0; i < 10000; i++) {
var matches = /foo/g.exec('sdkfjfooasdknal');
x += matches + "<br>";
}
$('body').html(x);
在我的两个 Firefox 版本中,它返回 40x foo
、1x null
、41x foo
,然后它在这两个之间交换在每一次通话中。
你遇到过这种情况吗?
最佳答案
正如 jfriend00 所说,这是 Firefox 中 JS 引擎中的一个错误。应该在 Firefox 12 中修复。参见 https://bugzilla.mozilla.org/show_bug.cgi?id=728021
关于javascript - RegExp.exec() 在 Firefox 中重复调用时返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10167323/