问题标签 [ecmascript-intl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Number.prototype.toLocaleString() 和 Intl.NumberFormat.prototype.format 有什么关系?
我们正在尝试在我们的应用程序中使用本地化支持并查看toLocaleString()
. 我们还查看了Intl.NumberFormat
它的格式方法。
他们有什么关系吗?哪个更好用?
javascript - Intl.Collator 和带数字选项的自然排序使用十进制数字错误地排序
Intl.Collator
使用和启用选项对小数进行排序会numeric
错误地比较小数。
在某些浏览器上,比较“0.005”和“0.05”会返回“0”,因为数字相同。
结果在不同的浏览器中:
- 铬 54 = 0
- 火狐 49 = 0
- 边 = -1
- 即 11 = -1
谁能告诉我怎么了?
在 Firefox 中报告为错误:https ://bugzilla.mozilla.org/show_bug.cgi?id=1312388
javascript - 国际 API 将数字转换为字符串?
我一直在阅读国际 API - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat
这太棒了。我计划开始广泛使用它。
但是,我正在寻找一件事。我想将“3”转换为“三”。数字到字符串。基于语言环境。这可能吗?
javascript - 大浮点数的国际格式化
我试图更好地理解为什么大数字,具有潜在的大精度的处理不一致,特别是在 JavaScript 和它的本地化设施(例如 ECMA-402/Intl)中。我假设这与浮点数的使用有关,但我想了解限制在哪里和/或如何避免这些陷阱。
例如,使用 Intl.NumberFormat:
我怎样才能弄清楚这些数字从哪里开始变得不一致?有某种限制吗?当我增加小数精度时,该限制是否会改变,例如:
javascript - Edge 15 中的“国际不可用”
Intl not available
当我的脚本在 Edge 15 中运行以下代码时,我在 JS 控制台中看到错误:
new Date().toLocaleDateString()
我对此有点难过。它在 Edge 14 中运行良好,我找不到任何对从 Edge 15 突然消失的国际化 API 的引用。
我不确定这是否是测试它的正确方法,但window.hasOwnProperty("Intl")
在控制台中运行实际上会返回true
. 对我来说,这似乎表明 Intl 确实存在。
任何拥有更多 JS 技能的人都能够知道这里到底发生了什么?
javascript - 向 Intl.NumberFormat 添加功能
我正在尝试向格式函数添加功能,但我的代码有问题:
我错过了什么?
javascript - 将 Intl.DateTimeFormat 理解为 JavaScript 对象
我不明白 的行为Intl.DateTimeFormat
。
它不会暴露我对 JavaScript 对象所期望的行为。我想明白为什么?
下面的代码片段演示了format
onDateTimeFormat
方法不能被覆盖。这怎么可能?
同样从原型继承派生DateTimeFormat
似乎是不可能的。以下代码段引发错误:
为什么DateTimeFormat
不像一个“正常”的 JavaScript 对象?
如何DateTimeFormat
防止覆盖方法?
如何DateTimeFormat
防止覆盖派生对象?
javascript - 与 Date.toLocaleDateString() 的 IE11 中的格式化选项有什么区别?
我有一个简单的问题,我不知道如何解决。如果我在 Chrome 中运行此代码:
结果是Tuesday, December 4, 2012
,但如果我在 IE11 中运行它,我会得到Tuesday, December 04, 2012
.
似乎 IE11 不符合格式参数,day: 'numeric'
而是像我指定day: '2-digit'
的 .
那么这只是IE11的错吗?我在网上找不到有关此特定问题的任何讨论。如果是,我该如何解决这个问题以获得我想要的格式,而在个位数的日期数字上没有前导 0?