从一行中的字符串中提取数字(有时是点之间)的最佳方法是什么?
var str = "ghjkhjgbkhj123.45khgbkhjgk67 8kjhgkj hg13.99sads";
我需要一个[123.45, 67, 8, 13.99];
str.match(/\d+/g)
会返回略有不同的结果 - 它不会计算"."
。
答案 0 :(得分:2)
将正则表达式用作/\d+(?:\.\d+)?/g
var str = "ghjkhjgbkhj123.45khgbkhjgk67 8kjhgkj hg13.99sads";
console.log(
str.match(/\d+(?:\.\d+)?/g)
);
答案 1 :(得分:1)
str.match(/[.\d]+/g)
会做你要求的。这将允许多个点,所以如果你想做一些“明智的”给定123.456.789
你可能会想要更复杂的东西 - 但在这种情况下你应该首先弄清楚是什么你想要更明智的事情。