Javascript:regex exec

时间:2016-10-14 12:44:45

标签: javascript regex

我想在循环中执行正则表达式,我得到奇怪的结果。对于

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()运行异步,正则表达式越复杂,循环越多,快速执行正则表达式。但我无法找到有关此行为的信息。这里发生了什么?

0 个答案:

没有答案