解析文本为int javascript时的奇怪行为

Strange behaviour when parsing text to int javascript

本文关键字:javascript 文本 int      更新时间:2023-09-26

好的,

这个问题可能很难复制,但我找不到问题的根源。

当我尝试对测试[0]执行parseInt时,它返回NaN:

var test = ["‎02", "09", "2015 17:34"];
var result = parseInt(test[0], 10); // Return NaN!
var result = parseInt(test[1], 10); // Return 9!
console.log(test[0].length) // Returns 3!! Should be 2
for(var i = 0; i < test[0].length; ++i) {
  console.log(test[0][i]);
}
//Logs: 
// EMPTY LINE
// 0
// 2

我试着修剪它,但那也不起作用。我在Chrome + Firefox中都试过了,结果一样。

当别人尝试它,它工作!

重启电脑,重新安装Chrome..一点也不改变…

知道的吗?

谢谢

第一个字符串中有一个不可见字符

test[0].charCodeAt(0)

返回8206。当你在谷歌上搜索这个代码时,它会说这是一个"从左到右的标记"。这是一个控制字符,它包含一些信息,但没有什么要显示的。

您还应该注意到,您可以删除或选择该字符而不会注意到任何视觉变化。如果你删除那个字符,一切又都好了。