我想在循环中执行正则表达式,我得到奇怪的结果。对于
var a = [], r = /(.*)\.\$\.(.*)/g, s = 'text.$.text';
for (var i = 0; i < 10; i++) {
a.push(r.exec(s + i));
}
console.log(a);
我得到了
[Array[3], null, Array[3], null, Array[3], null, Array[3], null, Array[3], null]
对于
var a = [], r = /t/g, s = 'text.$.text';
for (var i = 0; i < 10; i++) {
a.push(r.exec(s + i));
} console.log(a);
我得到了
[Array[1], Array[1], Array[1], Array[1], null, Array[1], Array[1], Array[1], Array[1], null]
这似乎是一个时间问题。我的第一个想法是//g.exec()
运行异步,正则表达式越复杂,循环越多,快速执行正则表达式。但我无法找到有关此行为的信息。这里发生了什么?