在我的ASP.NET MVC项目中,我需要使JavaScript 隐含字符串表示成为当前文化感知,特别是使用小数分隔符。 例如:
var nbr = 12.25;
console.log(nbr);
此处,console.log(nbr)
必须在EN-US中显示“12.25”,在fr-FR中显示“12,25”,而不必显式调用toString()方法。
有人知道这样做的方法吗?
答案 0 :(得分:1)
您可能正在寻找toLocaleString();
:
toLocaleString()方法返回一个语言敏感的字符串 代表这个数字。
新的语言环境和选项参数允许应用程序指定 应使用其格式约定的语言并自定义 功能的行为。在较旧的实现中,忽略了 locales和options参数,使用的语言环境和 返回的字符串完全取决于实现。
请注意,它可能并非在所有浏览器中都受支持,或者功能有限。您可以填充它或在这些情况下手动处理它:
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)
};