正则表达式获取任何类型的所有数字

Regex to get all numbers of any type

我有这样的字符串:

"1 -2 -0.00529366960223319 -1.72662226752857E-5 some text"

我想将数字解析为一个数组,删除文本,使用 javascript,到 return 这个:

[1, -2, -0.00529366960223319, -1.72662226752857E-5]

我尝试了很多表达方式,如下所示:

/[-+]?[0-9]*.?[0-9]+([eE][-+]?[0-9]+)?/

没有成功,有什么帮助吗?

提前致谢!

你不需要正则表达式:

function isNumeric(n) {  /*  */
  return !isNaN(parseFloat(n)) && isFinite(n);
}
var str = "1 -2 -0.00529366960223319 -1.72662226752857E-5 some text",
    arr = str.split(" ").filter(isNumeric).map(Number);

您可以使用这个正则表达式:/[-+]?\d*\.?\d+([eE][-+]?\d+)?/g

你快到了。
如果你真的想要它,请记住转义所有特殊符号,如 .,否则它将与任何字符匹配。
正则表达式末尾的 g 启用 global 匹配。

var src = "+1 -2 -0.00529366960223319 -1.72662226752857E-5 some text 25e46";

var reg = /[-+]?\d*\.?\d+([eE][-+]?\d+)?/g;

res = src.match(reg);

// The matches are in elements 0 through n.
for (var i = 0; i < res.length; i++) {
    document.body.innerHTML += "submatch " + i + ": " +  res[i] + "<br/>";
}