如何用千位分隔符解析两个以空格分隔的数字?

时间:2016-09-17 08:58:23

标签: javascript string-parsing

我需要解析包含两个数字的字符串,可能有三种情况:

"646.60 25.10" => [646.60 25.10]

"1 395.86 13.50" => [1395.86, 13.50]

"13.50 1 783.69" => [13.50, 1 783.69]

在一个简单的情况下,它足够使用'number'.join(' '),但在某些情况下,有一千个分隔符,如第二个和第三个。

那么我怎么能解析所有案例中的数字呢?

编辑:所有数字在数字的最后一段都有一个小数点分隔符。

2 个答案:

答案 0 :(得分:3)



var string1 = "646.60 25.10";// => [646.60 25.10]

var string2 = "1 395.86 13,50";// => [1395.86, 13,50]

var string3 = "13.50 1 783.69"; // => [13.50, 1 783.69]


function getArray(s) {
var index = s.indexOf(" ", s.indexOf("."));
	return [s.substring(0,index), s.substring(index+1) ];
}


console.log(getArray(string1));
console.log(getArray(string2));
console.log(getArray(string3));




答案 1 :(得分:0)

假设每个数字都以点数位结尾(在你说的评论中),你可以使用它来定位与aregex分开的正确位置。 这样,它对于任意数量的数字都是健壮且通用的(尽管您指定的只有两个),并且对于数字中的任意位数,只要它以数字点数字数字结尾:

str1 = "4 435.89 1 333 456.90 7.54";

function splitToNumbers(str){
  arr = str.replace(/\s+/g,'').split(/(\d+.\d\d)/);
  //now clear the empty strings however you like
  arr.shift();
  arr.pop();
  arr = arr.join('&').split(/&+/);

 return arr;
}

console.log(splitToNumbers(str1));
//4435.89,1333456.90,7.54