Javascript 国际化(数字格式“num.toLocaleString()”)不适用于chrome
我想在Javascript中设置数字格式。。我使用下面的方法 num.tolocalString()适用于Firefox,但不适用于Google Chrome。。Javascript 国际化(数字格式“num.toLocaleString()”)不适用于chrome,javascript,internationalization,Javascript,Internationalization,我想在Javascript中设置数字格式。。我使用下面的方法 num.tolocalString()适用于Firefox,但不适用于Google Chrome。。 我需要在chrome浏览器中添加哪些it工作。国际化总是充满挑战,不幸的是,似乎没有一个一致/普遍的解决方案。你最好的选择是使用第三方库为你处理事情。 我们严重依赖谷歌闭包库,它有一些非常强大的i18n(国际化)工具。请看一个如何使用它的示例。最后,它变得非常简单: // define italian number format sy
我需要在chrome浏览器中添加哪些it工作。国际化总是充满挑战,不幸的是,似乎没有一个一致/普遍的解决方案。你最好的选择是使用第三方库为你处理事情。 我们严重依赖谷歌闭包库,它有一些非常强大的i18n(国际化)工具。请看一个如何使用它的示例。最后,它变得非常简单:
// define italian number format symbols
goog.i18n.NumberFormatSymbols = goog.i18n.NumberFormatSymbols_it_IT;
// create new decimal formatter (PERCENT, CURRENCY, SCIENTIFIC are options)
formatter = new goog.i18n.NumberFormat(goog.i18n.NumberFormat.Format.DECIMAL);
// view formatted and localized string
alert(formatter.format(15650.579));
如果你是新手,不要担心。设置起来并不难,它有许多优秀的助手类,您可能会发现它们很有用。
根据定义,toLocaleString()方法依赖于实现:它使用实现区域设置,例如浏览器区域设置。因此,如果我查看使用该方法的页面,我会看到根据芬兰或英语语言环境格式化的数字,具体取决于我使用的浏览器
您需要的是根据页面的区域设置进行本地化,为此,您需要其他东西。在简单的情况下,您可以自己编写代码,但数字格式通常比较复杂,因此使用库(例如)是合理的。查看一个简单的压缩源代码。在Globalize中,您可以在指定区域设置时使用。JavaScript国际化支持非常差(如您所发现的)。 你可以看看
它可以处理数字格式,还可以处理日期、时间和货币。一点巫毒可以实现您自己的数字格式。您可以将其构建到String.prototype中,但我不希望这样,因为它是本地化的
function reverse(str) {
return str.split('').reverse().join('');
}
function num2str(num) {
var str = num+"";
// european
// return reverse(reverse(str.replace('.',',')).replace(/\d{3}/g,'$&.').replace(/\.$/,''));
// american
return reverse(reverse(str).replace(/\d{3}/g,'$&,').replace(/\,$/,''));
}
然后它
> console.log(25000.45)
> 25,000.45
也可以看到这一点。你应该关闭这个…你的链接谈到“使用默认语言环境”,close是否真的检测到了用户的语言环境并选择了合适的数字格式?还是默认的语言环境总是相同的?谷歌的国际化工具是静态的。无法在运行时检测语言并选择要使用的翻译。也就是说,在“numberformatsymbols.js”中,您将看到:
goog.i18n.numberformatsymbols=goog.i18n.numberformatsymbols\u en
换句话说,它默认为英语。紧接着你会发现:if(goog.LOCALE='aa'){goog.i18n.NumberFormatSymbols=goog.i18n.NumberFormatSymbols_aa;}
if(goog.i18n.NumberFormatSymbols='en'/默认为en这是一个编译时定义语句,用于控制语言使用另一种语言。如果您需要动态语言功能,还可以使用其他工具。签出以执行动态翻译,并扫描源代码以查找可翻译字符串。您应该熟悉worksSee。jQuery globalize自您撰写评论以来似乎发生了重大变化。目前(2014年)仅支持日期格式DEHM,仅限于逗号后面的两位数字