.toLocaleString()
言語に忠実に沿って、数値を表す文字列を返します。
locales
とoptions
引数を指定して、
言語のフォーマット変換がどのように使用されるべきかと、
関数の振る舞いのカスタマイズとを、アプリケーションに特定させます。
古い実装によっては、locales
とoptions
引数が無視され、
使用されるlocale
と文字列のフォームは実装全体に依存します。
文法
numObj.toLocaleString([locales [, options]])
どのブラウザがlocales
とoptions
をサポートするのかを、
「ブラウザ互換性」のセクションと、「例: localesとoptionsの引数がサポートされているかを調査」で確認してください。
Firefox 29に実装されたECMAScript国際化APIは、
locales
引数をNumber.toLocaleString
メソッドに追加しました。
もし引数がundefined
であれば、このメソッドはOSによって指定された言語でローカライズされた数字を返し、
それ以前のFirefoxのバージョンでは英語でローカライズされた数字を返します。
この変更は、すぐに修正される可能性のある後方互換に影響を与え、後戻りさせるものとして報告されています。 (bug 999003)(翻訳に自信なし)
引数 | 説明 |
---|---|
locales |
BCP47言語タグの文字列、またはそれらの文字列の配列を指定します。
一般的な形式と |
options |
下記のプロパティの幾つかを、または全てを含むオブジェクトを指定します。
下記のプロパティは2つのグループに分けられます。
|
例
基本的にロケールを指定しなければ、 デフォルトのオプションとロケールによりフォーマットされた文字列が返されます。
var number = 3500;
// US英語がロケールであれば、 "3,500"を出力
console.log(number.toLocaleString());
例: localesとoptionsの引数がサポートされているかを調査
locales
とoptions
引数は、まだ全てのブラウザにサポートされていません。(訳注:2014年8月現在)
これらが実装でサポートされているかを調べるために、
敢えて不正な言語タグを指定してRangeError
例外により拒絶されることを確認します。
function toLocaleStringSupportsLocales() {
var number = 0;
try {
number.toLocaleString("i");
} catch (e) {
return e.name === "RangeError";
}
return false;
}
localesの使用例
下記は、幾つかのローカライズされた数値フォーマット例になります。
アプリケーションのユーザーインターフェースで使用される言語のフォーマットを取得するには、
その言語(出来れば、フォールバック用の言語も)をlocales
引数で特定します。
var number = 123456.789;
// ドイツ語はカンマを小数点区切りに、
// ピリオドを1000の区切りに使用します。
alert(number.toLocaleString("de-DE"));
// → 123.456,789
// 多くのアラビア語を話す国のアラビア語は、
// 実際のアラビア数字を使用します。
alert(number.toLocaleString("ar-EG"));
// → ١٢٣٤٥٦٫٧٨٩
// インドでは、thousands/lakh/crore区切りが使用されます。
alert(number.toLocaleString("en-IN"));
// → 1,23,456.789
// nu拡張キーはナンバリングシステムを要求します。(例: Chinese decimal
alert(number.toLocaleString("zh-Hans-CN-u-nu-hanidec"));
// → 一二三,四五六.七八九
// バリ語のようにサポートされていない可能性のある言語を要求する場合は、
// フォールバック用の言語を含めます。(このケースであれば、インドネシア語)
alert(number.toLocaleString(["ban", "id"]));
// → 123.456,789
optionsの使用例
toLocaleStringによって提供された結果は、options
引数を使用してカスタマイズすることが可能です。
var number = 123456.789;
// 通貨フォーマット
alert(number.toLocaleString("de-DE", {style: "currency", currency: "EUR"}));
// → 123.456,79 €
// 日本円はマイナーユニットを使用しません
alert(number.toLocaleString("ja-JP", {style: "currency", currency: "JPY"}))
// → ¥123,457
// 有効桁数を3桁に制限
alert(number.toLocaleString("en-IN", {maximumSignificantDigits: 3}));
// → 1,23,000
パフォーマンス
大きな数値をフォーマットする際は、
NumberFormatオブジェクトを作成し、
提供されるNumberFormat.format
プロパティを使用するのが良いでしょう。
仕様
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) |
IE | Opera | Safari |
---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ |
localesと options引数 |
24 | 29 (29) | 11 | 15 | × |
機能 | Android | Chrome for Android |
Firefox Mobile |
IE Mobile |
Opera Mobile |
Safari Mobile |
---|---|---|---|---|---|---|
基本 | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ |
localesと options引数 |
× | 26 | × | × | × | × |
関連項目
© 2017 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
このページは、ページトップのURL先のMozilla Developer Network(以下、MDN)のコンテンツを翻訳した内容を基に構成されています。 構成について異なる点も含まれますので、下記の項目を確認し、必要に応じて元のコンテンツをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。
- 特定のブラウザに特化しすぎている情報やあまりにも古い情報、 または試験的に導入されているようなAPIや機能については、省略していることがあります。
- 例やデモについて、実際にページ内で動作させる関係で一部ソースコードを変更している場合や、 その例で使用しているコンテンツの単語や文章などを日本人向けに変更しいてる場合があります。
- MDNの更新頻度が高いため、元のコンテンツと比べ情報が古くなっている可能性があります。
- "訳注:"などの断わりを入れた上で、日本人向けの情報の追記を行っている事があります。