正则表达式获取任何类型的所有数字
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/>";
}
我有这样的字符串:
"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/>";
}