JavaScriptで3桁ごとにカンマを入れる方法

JavaScriptでカンマで桁区切りをする関数を作りました。数値に3桁ごとにカンマを挿入します。
3桁ごとにカンマと言っても左からではなく右からというのが曲者。そこでまず数値を逆順にします。正規表現を使い3桁ごとにカンマを挿入してから元に戻します。

function comma(num){
  var a;
  //数値を文字列に変換。
  a = num.toString(10);
  //文字列を配列にし逆順にしてから文字列に戻す。"1234"->"4321"
  a = a.split("").reverse().join("");
  //3字毎にカンマを挿入する。"4321"->"432,1"
  a = a.replace(/(\d{3})/g, "$1,");
  //また逆順にする。先頭にカンマがあれば削除する。"432,1"->"1,234"
  a = a.split("").reverse().join("").replace(/^,/, "");
  return a;
}

コメント

タイトルとURLをコピーしました