2010-11-03 16 views

回答

36

最簡單的方法是刪除所有逗號:parseInt(str.replace(/,/g, ''), 10)

2

你可以這樣說:

var value = parseInt("15,678".replace(",", "")); 
+0

您的解決方案只會取代第一個逗號,不是所有的人,因此將不適用於數字> = 1,000,000 – 2016-12-20 11:24:40

+0

@ daniel.sedlacek問題是「我想將字符串」15,678「轉換爲值15678」。我的答案解決了這個問題。當然,我在這裏學究生,但技術上是正確的;) – treeface 2016-12-22 18:59:57

8

一種方法是刪除所有逗號有:

strnum = strnum.replace(/\,/g, ''); 

然後通過parseInt:

var num = parseInt(strnum.replace(/\,/g, ''), 10); 

但您在這裏需要小心。將逗號用作千位分隔符是一種文化事物。在某些地區,編號1,234,567.89將被寫入1.234.567,89

+2

'parseInt()'應該在被調用時提供一個基數,以消除數字的十六進制解釋。 – 2010-11-03 00:58:40

1

使用正則表達式解析之前刪除逗號,這樣

parseInt(str.replace(/,/g,''), 10) 
//or for decimals as well: 
parseFloat(str.replace(/,/g,'')) 

You can test it here

8

如果你只有數字和逗號:

+str.replace(',', '') 

+注塑串str成數如果可以。爲了使這個儘可能明確,以括號包起來:

(+str.replace(',', '')) 

因此,如果你在它是多個獨立的視覺一條語句中使用它(+ + X看起來非常相似,++ X):

var num = (+str1.replace(',', '')) + (+str1.replace(',', '')); 

Javascript代碼公約(見從下「令人困惑的長處和短處」,第二部分):

http://javascript.crockford.com/code.html

+0

您的解決方案將只替換第一個逗號,而不是全部,因此它不適用於數字> = 1,000,000 – 2016-12-20 11:22:25

相關問題