这个问题代表了Globalize的一个建议错误。该项目的所有者要求它首先作为一个 SO 问题发布,所以我们开始......
在 Globalize 的新版本 1.2.1(和 1.2.2)中,我们注意到解析空字符串的数字返回 0(似乎与文化无关)。此行为与之前的版本 1.1.2 不同,它返回 NaN。再生产:
var g = new Globalize("en-US");
g.numberParser()(''); // returns 0 in v1.2.1 and NaN in v1.1.2.
直觉告诉我,解析一个空字符串不应该返回 0。在这种情况下,原生 JavaScript 解析函数(例如 parseInt)返回 NaN,支持这种直觉。
此外,Globalize 项目中的相关单元测试似乎没有涵盖这种情况,因此不清楚更改的行为是否是有意的。通过简要查看 1.2.* 版本的更改日志,我似乎找不到任何意图更改此行为的说明。
请注意,在新版本中解析空格确实会返回 NaN:
var g = new Globalize("en-US");
g.numberParser()(' '); // returns NaN in both v1.2.1 and v1.1.2.
我们希望项目成员之一确认这是一个错误并在 Globalize 项目中提出相应的问题,或者解释为什么这是现在的预期行为。