JavaScriptのtoLocaleStringメソッドについて調べてみた


(今回のエントリーは元々、前回(JavaScriptの数値をカンマ区切りにする最も簡単な方法 | while(isプログラマ))の後半に記述していた内容ですが、タイトルとは少しかけ離れた内容となり、別のエントリーにしたほうがいいような気がしたので分けました)

toLocaleStringというメソッドを知ったのはつい最近なのですが、その時は(toLocaleString? toStringなら知ってるけど、toLocaleStringって何だ?)と思いました。調べてみると、JavaScriptのオブジェクトには全て(意図的にprototype.toLocaleStringをundefined等にする場合をのぞいて)、toLocaleStringメソッドが存在しているようで、たいがいのオブジェクトではただたんにtoStringメソッドを呼ぶメソッドとなっているようです(参考:toLocaleStringメソッド – Objectクラス – JavaScript入門)。

どうやら、NumberオブジェクトとDateオブジェクトではtoStringとtoLocaleStringで別の結果を返すようです。ただ、DateオブジェクトのtoLocaleString()はChromeとIEでは別々の値を返しました

もう少し調べて見ると、このtoLocaleStringメソッドは第一引数にロケール指定の文字列、第二引数にオプションを指定することがきるらしく、時刻の出力表記を変更する場合は下記のようにするといいようです(以下、出力例はChromeで実行した結果)。

参考:Date.prototype.toLocaleString() – JavaScript | MDN

もちろん、Numberオブジェクトでもいろいろな指定ができるよう。

参考:Number.prototype.toLocaleString() – JavaScript | MDN

第一引数については、下記ページが参考になるかも。
ロケール ID (LCID) の一覧

ただし、この引数の指定自体は最近のブラウザでしか指定できないようで、IEは11、Chromeは24、Firefoxは29からサポートしており、Safariではそもそもサポートしていないようです。

コメントを残す

メールアドレスが公開されることはありません。