end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

javascript の toLocaleString() による 数値(Number)や日付(Date)の文字列書式変換

「数値を3桁毎に",“で区切る」場合や「日付をYY/MM/DD形式に変換する」場合、 正規表現 + jquery.template で対応していましたが、 Number.prototype.toLocaleString() や、Date.prototype.toLocaleString() があるらしいので、写経。

※ただし、safariで未対応だったり、ie / chrome / firefox で出力結果が 異なる等の注意は必要です。

参考url

最初に、developer.mozilla.org にある仕様を読むことをお勧めすます

toLocaleString()の仕様

developer.mozilla.org

developer.mozilla.org

localeや通貨の一覧

end0tknr.hateblo.jp

使用例

JavaScriptのtoLocaleStringメソッドについて調べてみた | while(isプログラマ)

オレオレ使用例

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <button onClick="num_to_local_string();">Number.toLocaleString()</button>
    <button onClick="date_to_local_string();">Date.toLocaleString()</button>
    <br>
  </body>
  <script>
   function num_to_local_string(){
     //通貨形式
     alert( (1234.56789).toLocaleString("ja-JP",
                      {style: 'currency',
                   currency: 'JPY' }) );
     //数値形式、小数第5位で丸め
     alert( (1234.56789).toLocaleString("ja-JP",
                      {style: 'decimal',
                   minimumFractionDigits:4}) );
     //パーセント形式
     alert( (0.015).toLocaleString("ja-JP",
                  {style: 'percent'}) );
   }

   function date_to_local_string(){
     var date = new Date();

     alert( date.toLocaleString("ja-JP",
               {hour12:true,       //AM/PMを表示
                "year":"numeric",  //2桁で表示
                "month":"2-digit", //曜日を表示
                "day":  "2-digit",
                "weekday":"short",
                "hour":  "2-digit",
                "minute":"2-digit",
                "second":"2-digit",
                }) );
   }

</script>
</html>