此问题代表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.
Intuition告诉我,解析一个空字符串不应该返回0. Vanilla JavaScript解析函数(例如parseInt)在这种情况下返回NaN,支持这种直觉。
此外,全球化项目中的相关unit test似乎并未涵盖此案例,因此不清楚是否有意改变行为。通过简要介绍1.2。*版本的更改日志,我似乎无法找到任何改变此行为的意图。
请注意,解析新版本中的空格确实会返回NaN:
var g = new Globalize("en-US");
g.numberParser()(' '); // returns NaN in both v1.2.1 and v1.1.2.
我们希望其中一个项目成员要么确认这是一个错误并在Globalize项目中提出相应的问题,要么解释为什么这是现在预期的行为。