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

JavaScript RegExp method exec() returns only one item

本文关键字:一个 返回 exec RegExp JavaScript 方法      更新时间:2023-09-26

可能重复:
Regex exec只返回第一个匹配

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

按预期返回"axbxdxd"。

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

但是,只返回一个包含一个项的数组:["1"]。它不应该归还所有的火柴吗?

提前感谢!

否。您需要多次呼叫exec

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

编辑exec上的Mozilla开发者网络页面对此功能有更多介绍。这就是我得到这个例子的地方,并针对你的问题进行了修改。

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