ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

JavaScript:数値を3桁区切りにする方法はどうするのが無難?

JavaScriptで計算後表示をしたところ、4桁の数字になることに気がつきました。
4桁の数字になると、3桁毎のカンマ区切りをしないと違和感を感じます。

3桁毎の区切りをする方法を検索すると、正規表現を使ったり、ループで回してつけたりする情報が見つかりました。
他には、「Intl.NumberFormat.prototype.format」を利用する方法が見つかりました。
developer.mozilla.org

「Intl.NumberFormat.prototype.format」を試す

var numberFormat = new Intl.NumberFormat('ja-JP');
alert(numberFormat.format(1000));

としたら、「1,000」になり、目的が果たせます。

f:id:AJYA:20180809125341p:plain
unsplash-logoClément H

「Intl.NumberFormat.prototype.format」でいいのか?

目的を果たせたので使えばいいのですが、対応しているブラウザを確認すると、Internet Explorerは11、Safariは10からになっています。
Intl.NumberFormat.prototype.format - JavaScript | MDN

Safariが10からというのが気になって、今回は正規表現を使う方法を選択しました。

Internet Explorerだけなら、Internet Explorerのサポートは現在11しかされていなかったはずなので、古いバージョンを考慮していません。
Safari 10は開発が止まっているようなので、サポート対象外なのかもしれませんが、Mac OSがサポートされているのであればサポート対象にも思えるので、公式の情報を知りたいです。