JavaScript RegExp方法exec()只返回一个项目

时间:2012-02-09 18:32:56

标签: javascript regex

  

可能重复:
  Regex exec only returning first match

"a1b2c3d".replace(/[0-9]/g,"x")

按预期返回“axbxdxd”。

/[0-9]/g.exec("a1b2c3d")

但是只返回包含一个项目的数组:[“1”]。它不应该归还所有比赛吗?

提前致谢!

1 个答案:

答案 0 :(得分:5)

没有。您需要多次致电exec

var re = /[0-9]/g;
var input = "a1b2c3d";
var myArray;
while ((myArray = re.exec(input)) != null)
{
  var msg = "Found " + myArray[0] + ".  ";
  print(msg);
}

修改Mozilla Developer Network page on exec对此功能有更多要说的内容。这就是我得到这个例子并根据你的问题对其进行修改的地方。

编辑2 :我已经更改了上面的代码,因此它实际上并不是一个无限循环。 : - )