将数字转换为印度语区域设置格式

时间:2016-04-04 10:43:50

标签: javascript ecmascript-5

我试图将一个数字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

但它不起作用(在Chrome v49.0.2623和Safari中测试)

Output in safari:
123456.789

Output in chrome:
123,456.789

但它在firefox中起作用

Output in Firefox:
1,23,456.789

但是,当我阅读浏览器兼容性表时,表示Chrome 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'));

1 个答案:

答案 0 :(得分:4)

这仅表示Chrome(或Safari)不支持en-IN区域设置代码。使用相同格式的不同区域设置可能会有更好的运气。一个例子是印地语语言环境代码(hi),它似乎在Chrome,Firefox和Internet Explorer 11中返回此格式:

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

对于它的价值,MDN的支持表仅列出基本支持。它确定了哪些浏览器实现了这些功能,但它并没有像测试每个可能的用例那样进行。