1. ホーム
  2. javascript

[解決済み] Javascriptのサウザンドセパレータ/文字列フォーマット [重複].

2022-08-29 17:55:24

質問

Javascriptで数値や文字列の書式を設定する機能はありますか?

私は文字列や数値のための千セパレータのための方法を探しています... (c#のString.Formatのような)

どのように解決するのですか?

アップデート(7年後)

以下の原解答で引用した文献は誤りでした。 そこで はこのための組み込み関数で、まさに カイザー は以下で提案しています。 toLocaleString

というわけで、できます。

(1234567.89).toLocaleString('en')              // for numeric input
parseFloat("1234567.89").toLocaleString('en')  // for string input

以下に実装した関数も動作しますが、単に必要ないだけです。

(もしかしたら、運が良ければ、それが でした。 が必要であることがわかるかもしれないと思ったのですが、そうではありませんでした。 これによると より信頼性の高い参考文献 によると、toLocaleString は ECMAScript 第 3 版 [1999] から標準の一部となっており、IE 5.5 までサポートされていたということです)。


オリジナルの回答

によると この参照 によると、数字にカンマを追加するための組み込みの関数はないそうです。 しかし、このページには自分でコード化する方法の例も含まれています。

function addCommas(nStr) {
    nStr += '';
    var x = nStr.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
            x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

編集します。 逆の方法(カンマ付きの文字列を数値に変換する)には、以下のような方法があります。

parseFloat("1,234,567.89".replace(/,/g,''))