首页 > 解决方案 > 如何测试 JavaScript 的 Intl.NumberFormat()

问题描述

目标是为国际访问者提供良好的用户体验(该网站位于美国)。该站点使用 JavaScript 创建包含大量数字内容的报告,我希望用户查看使用当地约定格式化的数据。因此,我正在使用Intl.NumberFormat().

我曾假设我可以通过更改我的 Windows 10 的区域和语言设置来测试来自不同位置的用户如何体验该站点,因为MDN 文档为 Intl.NumberFormat()

在不指定语言环境的基本使用中,返回默认语言环境和默认选项的格式化字符串。

但是,当我将设置更改为德国和德语时,resolvedOptions()仍然返回一个locale值“en-US”,并且测试编号仍然使用美国约定进行格式化。

Q1:为什么是“en-US”而不是“de-DE”?我有什么误解?

Q2:如何像国际用户一样进行测试?

这就是我格式化数字并获取对象值的方式locale

let n = '12345678.99';
let f = new Intl.NumberFormat();
let options = f.resolvedOptions();
console.log('locale = ', options.locale, '\t', 'n = ', f.format(n));

已编辑。删除了第三季度。

JSFiddle 测试新的 NumberFormat()

标签: javascriptinternationalization

解决方案


推荐阅读