2010-11-03 3 views

Antwort

36

Die einfachste Möglichkeit ist es, alle Kommas zu entfernen: parseInt(str.replace(/,/g, ''), 10)

2

Sie können es wie folgt tun:

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

Ihre Lösung nur das erste Komma ersetzen wird, nicht alle von ihnen, so dass es funktioniert nicht für Zahlen> = 1.000.000 –

+0

@ daniel.sedlacek die Frage war "Ich möchte die Zeichenfolge" 15,678 "in einen Wert 15678" konvertieren. Meine Antwort löst dieses Problem. Ich bin hier zwar pedantisch, aber technisch korrekt;) – treeface

8

Eine Möglichkeit ist es, alle Kommas entfernen mit:

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

und dann übergeben, dass parseInt:

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

Aber Sie müssen hier vorsichtig sein. Die Verwendung von Kommas als Tausendertrennzeichen ist eine kulturelle Sache. In einigen Gebieten würde die Nummer 1,234,567.891.234.567,89 geschrieben werden.

+2

'parseInt()' sollte beim Aufruf ein Radix sein, um die Hex-Interpretation einer Zahl zu eliminieren. –

1

einen regulären Ausdruck Verwenden Sie die Kommas vor Parsen, wie diese

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

You can test it here zu entfernen.

8

Wenn Sie nur haben Zahlen und Kommas:

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

Die + wirft die Zeichenfolge str in eine Reihe, wenn er kann. Damit dies so klar wie möglich, wickeln Sie es mit Pars:

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

daher, wenn Sie es in einer Anweisung verwenden, es ist getrennt visuell (+ + x sehr ähnlich aussieht x ++):

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

Javascript-Code-Konventionen (Siehe „Verwirrende Vor- und Nachteile“, zweiten Abschnitt von unten):

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

+0

Ihre Lösung ersetzt nur das erste Komma, nicht alle, so dass es nicht für Zahlen> = 1.000.000 funktioniert –