【发布时间】:2012-04-02 03:04:59
【问题描述】:
我有一个需要输入数字的网页,这部分很容易结合使用 parseFloat、isNaN 和(用于将值显示给用户)toFixed。问题是 Javascript 似乎完全不了解这里的文化。一些文化使用小数点逗号而不是小数点,但 Javascript 在这方面占优势。
支持小数点逗号并不太麻烦,我可以在解析用户输入之前将逗号替换为小数点,然后我可以在将结果显示给用户之前执行相反的操作。我的问题是,Javascript 有没有办法了解用户的文化设置?我只关心小数点分隔符,所以现在我对千位分隔符或货币等其他复杂问题不感兴趣。
是否有可靠的(客户端)方法来检测访问者是否使用小数点逗号而不是小数点?
更新
如果其他人想要它(或者如果任何人都可以看到缺陷 - 除了不能在 Chrome 中工作,如前所述 - 或更好的方法),我最终这样做了:
var useComma = (0.1).toLocaleString().indexOf(",") > 0;
如果用户将逗号设置为小数点分隔符,则 useComma 将为真
【问题讨论】:
-
JS 没有原生数字格式化功能,也没有原生 I18N 功能。
-
可能有一个不错的 i18n(“国际化”)库可供您使用。 Globalization 看起来不错,但我从未使用过。
-
@Cory:是的,我只是在浏览那个库,但据我所知,它没有检测到文化(除非我在某处遗漏了那部分)而且似乎有点我需要做的这件事很沉重。
标签: javascript localization globalization