2016-04-04 21 views
4

インドは千/ lakh/croreセパレータを使用しているため、数字を123456.789に変換しようとしていましたが、インドロケールフォーマットwiz 1,23,456.789に変換されました。番号をインドに変換するロケールのフォーマット

私は正常にコードのいくつかの10〜20行でこれを行うことができたし、私はMDNのこの記事に来ました。

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Using_locales

あなたはライン11を参照してください、彼らはそれ

// India uses thousands/lakh/crore separators 
console.log(number.toLocaleString('en-IN')); 
// → 1,23,456.789 

変換するがメカニズムを宣言した。しかし、それは(クロームv49.0.2623とSafariでテスト)

Output in safari: 
123456.789 

Output in chrome: 
123,456.789 
が動作していません

しかし、それはFirefoxで働いた

Output in Firefox: 
1,23,456.789 

しかし、私は、ブラウザの互換性の表を読んだとき、それはそれはクロムV24 +

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Browser_compatibility

でサポートされていることを述べたが、それはバグですか、私が何か間違ったことをやっていますか?

var number = 123456.789 
 
console.log(number.toLocaleString('en-IN'));

+0

支援方法あらゆる特定のロケールとその関連するフォーマットルールをサポートと同じものではありません。それは彼らが番号のいずれかのインド固有の書式ルールを持っていないChromeとSafariで「バグ」ですので、それが戻ってデフォルトに落ちることは完全に可能。 –

+2

「en-IN」入力だけかもしれないと思います。予想通りChromeで ' 'hi''(ヒンディー語)の入力が1,23,456.789''返します。 –

答えて

4

これは単にen-INロケールコードはクロム(またはサファリ)でサポートされていないことを意味します。同じフォーマットを使用する別のロケールを使用すると、より良い運が得られるかもしれません。この例はクロム、FirefoxとInternet Explorerの11でこの形式を返すように思わヒンディー語のロケールコード(hi)、である:それは価値がある何のため

console.log((123456.789).toLocaleString('hi')); 
-> 1,23,456.789 

、MDNの支持テーブルはベーシックサポートを示しています。どのブラウザが機能を実装しているかを判断しますが、すべての可能なユースケースをテストするまではありません。

関連する問題