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

Regex to get all numbers of any type

本文关键字:数字 类型 获取 任何 正则表达式      更新时间:2023-09-26

我有这样的字符串:

"1 -

2 -0.00529366960223319 -1.72662226752857E-5 一些文本"

我想将数字解析为一个数组,使用 javascript 删除文本以返回以下内容:

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

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

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

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

提前感谢!

你不需要正则表达式:

function isNumeric(n) {  /* http://stackoverflow.com/a/1830844/1529630 */
  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启用全局匹配。

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/>";
}