23

文字列「15,678」を値15678に変換したいと思います。メソッドparseInt()parseFloat()両方が「15,678」に対して15を返します。これを行う簡単な方法はありますか?

4

5 に答える 5

46

最も簡単なオプションは、すべてのコンマを削除することです。parseInt(str.replace(/,/g, ''), 10)

于 2010-11-03T00:52:43.593 に答える
11

1つの方法は、次のコマンドですべてのコンマを削除することです。

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

次に、それをparseIntに渡します。

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

ただし、ここでは注意する必要があります。千の区切り文字としてコンマを使用することは文化的なことです。一部の地域では、番号1,234,567.89が書かれ1.234.567,89ます。

于 2010-11-03T00:53:58.993 に答える
8

数字とコンマしかない場合:

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

可能であれば、+キャストは文字列strを数値にキャストします。これをできるだけ明確にするために、parensでラップします。

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

したがって、ステートメントで使用すると、視覚的に分離されます(+ +xは++xと非常によく似ています)。

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

Javascriptコード規約(下から2番目のセクションの「紛らわしいプラスとマイナス」を参照):

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

于 2010-11-03T01:00:58.680 に答える
2

あなたはこのようにそれを行うことができます:

var value = parseInt("15,678".replace(",", ""));
于 2010-11-03T00:53:33.240 に答える
2

このように、正規表現を使用して、解析する前にコンマを削除します

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

ここでテストできます

于 2010-11-03T00:54:02.520 に答える