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

muf*_*fel 3 javascript regex

可能重复:正则
表达式只执行第一次匹配

"a1b2c3d".replace(/[0-9]/g,"x")
Run Code Online (Sandbox Code Playgroud)

按预期返回"axbxdxd".

/[0-9]/g.exec("a1b2c3d")
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Can*_*ice 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);
}
Run Code Online (Sandbox Code Playgroud)

编辑:Mozilla开发者网络页面上exec有关于此功能的更多内容.这就是我得到这个例子并根据你的问题修改它的地方.

编辑2:我已经改变了上面的代码,所以它实际上不是一个无限循环.:-)