2015-12-21 63 views
-2

我在說的是將一個字符串讀入一個數字,例如什麼是在JavaScript中從美元金額中提取數字的最緊湊,高效和可靠的方法?

"$107,140,946" --->107140946

"$9.99" --->9.99

難道還有比

dolstr.replace('$',''); 
dolstr.replace(',',''); 
var num = parseInt(dolstr,10); 

一個更好的辦法???

+2

不'parseInt()'嘗試返回一個整數嗎? –

+0

我認爲你的意思是''parseFloat()' –

+1

@JamesAMohler我知道,但我認爲它停止解析,如果它發現一個意外的字符 –

回答

0

使用一個簡單的正則表達式和字符串的replace功能

parseFloat(dolstr.replace(/[^\d\.]/g, ''))

擊穿

它取代一個字符不是一個數字(0 - 9)的每個實例,而不是句號。請注意,該期限必須以反斜槓轉義。

然後,您需要將函數包裝爲parseFloat以將字符串轉換爲浮點型。

+0

我只是修復它 –

0

使用正則表達式簡單得多閱讀和維護

parseFloat(dolstr.replace(/\$|,/g, "")); 
0

你可以把所有這一切都在oneliner:

parseFloat(dolstr.replace('$','').split(",").join("")) 

請注意,我不更換第二個,因爲這會刪除第一個','。

0

假設輸入總是正確的,只保留數字(\d)和點(\.)並擺脫其他字符。然後對結果運行parseFloat。

parseFloat(dolstr.replace(/[^\d\.]/g, '')) 
相關問題