如何使Javascript“toString”隐含方法文化意识

时间:2015-04-10 09:38:17

标签: javascript internationalization tostring culture

在我的ASP.NET MVC项目中,我需要使JavaScript 隐含字符串表示成为当前文化感知,特别是使用小数分隔符。 例如:

var nbr = 12.25;
console.log(nbr);

此处,console.log(nbr)必须在EN-US中显示“12.25”,在fr-FR中显示“12,25”,而不必显式调用toString()方法。

有人知道这样做的方法吗?

1 个答案:

答案 0 :(得分:1)

您可能正在寻找toLocaleString();

  

toLocaleString()方法返回一个语言敏感的字符串   代表这个数字。

     

新的语言环境和选项参数允许应用程序指定   应使用其格式约定的语言并自定义   功能的行为。在较旧的实现中,忽略了   locales和options参数,使用的语言环境和   返回的字符串完全取决于实现。

Source

请注意,它可能并非在所有浏览器中都受支持,或者功能有限。您可以填充它或在这些情况下手动处理它:

if (typeof Number.prototype.toLocalString === "undefined") {
    // simply make it available
    Number.prototype.toLocalString = Number.prototype.toString;

    // or polyfill/handle here...
}

在您的情况下,您必须明确调用toLocalString()才能使其生效。如果没有一些hackish方法(不推荐),那就没办法了:

Number.prototype.toString = function() {
    return this.toLocaleString(optionsHere)
};