2016-08-21 30 views
1

我有用戶輸入包含小數的數字。我必須將輸入修改爲可用於計算的格式。jQuery數字格式不能正常工作

因此,考慮以下因素:

input   --> should become 
10,123.15  --> 10.123,15 
10.123,15  --> 10.123,15 
10,123.1  --> 10.123,10 
10.123,1  --> 10.123,10 
10,123  --> 10,123,00 
10.123  --> 10.123,00 
10.123,13562 --> 10.123,14 
10,123.13562 --> 10.123,14 

換句話說:使用點的千位分隔符,逗號用於小數分隔EN總是返回圍捕,二十進制數。

我試過使用regex'es,substr,round,但我有點卡住了。我現在爲上面提到的前兩個例子工作,但現在它不工作了。

一直在這看幾個小時,但也許你可以幫我嗎? JQuery Number Formatting確實幫了我一些忙,但它仍然不適用於上述所有示例。

如果有人能幫助我,我會很高興!

+1

如果逗號點之前,1.刪除逗號,2.使用toFixed(2),3.用重新格式化許多歐洲的數字格式化的一個 - 如果前點逗號替換點一無所有,用點替換逗號。沖洗並重復 – mplungjan

回答

1

如果您提供一個區域設置,以您需要的方式格式化數字,則可以使用toLocaleString()來實現此目的;例如,de-DE。試試這個:

var foo = '10,123.15'; // number as string 
 
var num = parseFloat(foo.replace(',', '')); // remove the , and convert to float 
 
console.log(num.toLocaleString('de-DE')); // format to locale

0

THX的回答!

我嘗試了他們,因爲它,我有更多的想法。我已經通過從右向左迭代輸入val來解決它,同時測試char是逗號還是點。然後照此行事。現在可以工作了!

再次感謝,

問候