数値のカンマ区切り
javascriptで数値をカンマ区切り文字列に変換する関数メモ
最近、正規表現を改めて勉強しなおしてるので、
別の方法で書き直してみた。
Numberを拡張する方法でやってみる。
Number.prototype.to_comma=function() { return this.toString().replace(/((^[+-])?(\d)+?)(?=(\d{3})+$)/g, "$1,"); }
- 検証1
(111222333444).to_comma();
⇒ 111,222,333,444
- 検証2
(-1234598765).to_comma();
⇒ -1,234,598,765
- 検証3
(12345.678901).to_comma();
⇒ 12345.678,901
※Jashにて
・・・小数点考慮できてない。
この対応はもう少し時間が必要かな。
追記
一応できたけど可読性最悪、、、性能も多分。
Number.prototype.to_comma=function() { var s = this.toString().split("\."); return s[0].replace(/((^[+-])?(\d)+?)(?=(\d{3})+$)/g, "$1,") + (s[1]? "." + s[1].replace(/(\d{3})(?=\d+)/g, "$1,") : ""); }
- 検証1
(111222333444).to_comma();
⇒ 111,222,333,444
- 検証2
(-1234598765).to_comma();
⇒ -1,234,598,765
- 検証3
(-12345.678901).to_comma();
⇒ -12,345.678,901
まぁいけてるっぽいね。