在一行中从字符串中提取价格的最佳方法是什么?

时间:2016-05-23 15:12:14

标签: javascript arrays regex function match

从一行中的字符串中提取数字(有时是点之间)的最佳方法是什么?

var str = "ghjkhjgbkhj123.45khgbkhjgk67   8kjhgkj hg13.99sads";

我需要一个[123.45, 67, 8, 13.99];

数组

str.match(/\d+/g)会返回略有不同的结果 - 它不会计算"."

2 个答案:

答案 0 :(得分:2)

将正则表达式用作/\d+(?:\.\d+)?/g

var str = "ghjkhjgbkhj123.45khgbkhjgk67   8kjhgkj hg13.99sads";

console.log(
  str.match(/\d+(?:\.\d+)?/g)
);

Regex explanation here.

Regular expression visualization

答案 1 :(得分:1)

str.match(/[.\d]+/g)会做你要求的。这将允许多个点,所以如果你想做一些“明智的”给定123.456.789你可能会想要更复杂的东西 - 但在这种情况下你应该首先弄清楚是什么