1

这个问题代表了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 项目中提出相应的问题,或者解释为什么这是现在的预期行为。

4

1 回答 1

2

这是一个错误,感谢报告,将在https://github.com/globalizejs/globalize/issues/682中跟踪

于 2017-01-30T12:37:20.567 回答