【发布时间】:2018-04-29 21:11:17
【问题描述】:
谁能解释为什么除非我对 json 进行硬编码,否则以下代码不起作用?我希望能够交换各种语言环境、货币值。
<html>
<body>
<script>
currency = 'GBP';
locale = 'en-GB';
var json = `{ style: 'currency', currency: '${currency}', minimumFractionDigits: 0, maximumFractionDigits: 0 }`;
console.log(json);
cf = new Intl.NumberFormat(locale, json);
document.write(cf.format(1887732.233) + "<br>");
</script>
</body>
</html>
【问题讨论】:
-
不清楚您所说的“除非我对 json 进行硬编码”是什么意思?你想做什么?
-
你的“json”是一个对象文字,“en-GB”不是一个语言环境,它是一个语言代码。 Intl 对象接受一个选项对象,其属性和名称用作生成字符串的值。您真的在问如何使用变量生成该对象吗?
-
通过对 json 进行硬编码,我的意思是使用每种语言的所有文字重复 json。我宁愿在那个 json 参数中使用一个变量,而不是重复它 50 次。
-
是的,我想避免为每种语言代码创建 50 个不同版本的 json。我想在那个 json 中插入一个变量
-
@RobG,我之所以说 locale,是因为我在developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…看到了这个文档 new Intl.NumberFormat([locales[, options]])
标签: javascript currency