[英]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.