为什么ParseInt()在Microsoft Edge上返回NaN?

时间:2019-07-10 12:56:50

标签: javascript microsoft-edge parseint

转到Microsoft Edge的控制台并运行以下JavaScript:

current_date = new Date().toLocaleDateString("en-CA",{timeZone: "America/Los_Angeles"});
a = current_date.substring(0,current_date.indexOf('-'));
console.log(parseInt(a));

我得到NaN;你呢?我在Chrome和Firefox的控制台中尝试了相同的代码,当运行parseInt(a)时,它们都产生“ 2019”。

1)为什么会这样?

2)如何在Microsoft Edge中解析“ a”变量并将其转换为整数?

screenshot of console output

1 个答案:

答案 0 :(得分:4)

在Edge中运行代码片段时,我看到了相同的问题。

使用ToLocaleDateString()时Edge显然为字符串添加了一些隐藏的格式,因此必须在使用parseInt()之类的.replace(/\u200E/g, '');之前清除它

Reference

current_date = new Date().toLocaleDateString("en-CA",{timeZone: "America/Los_Angeles"}).replace(/\u200E/g, '');
a = current_date.substring(0,current_date.indexOf('-'));
console.log(parseInt(a));