簡體   English   中英

如何用千位分隔符解析兩個以空格分隔的數字?

[英]How to parse two space-delimited numbers with thousand separator?

我需要分析包含兩個數字的字符串,可能在三種情況下:

"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(' ')就足夠了,但是在某些情況下,像第二和第三個分隔符一樣,有千個分隔符。

那么我如何解析所有情況下的數字呢?

編輯:所有數字在數字的最后一段中都有小數點分隔符。

 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)); 

假設每個數字都以點數字結尾(在您所說的注釋中),則可以使用該數字作為與aregex分割的正確位置。 這樣,對於任何數量的數字(盡管您指定只有兩個)和數字中的任何數字,它都是健壯且通用的,只要它以digit-dot-digit-digit結尾即可:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM