将文本解析为 int 时的奇怪行为 javascript
Strange behaviour when parsing text to int javascript
好的,
这个可能有点难复制,但我找不到问题的根源..
当我尝试在测试[0]上执行 parseInt 时,它 returns 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
我试过trim,但这也不起作用..我在Chrome + Firefox 中都试过了,结果相同..
当其他人尝试时,它有效!
重启电脑,重新安装Chrome..一点都没变..
有什么想法吗?
谢谢
第一个字符串中有一个不可见的字符。
test[0].charCodeAt(0)
returns 8206。当您对这段代码 google 时,它表示它是一个 "left-to-right mark"。这是一个控制字符,它包含一些信息但没有任何内容可显示。
您还应该注意到,您可以删除或 select 该字符而不会注意到任何视觉变化。如果你删除那个角色,一切都会好起来的。
好的,
这个可能有点难复制,但我找不到问题的根源..
当我尝试在测试[0]上执行 parseInt 时,它 returns 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
我试过trim,但这也不起作用..我在Chrome + Firefox 中都试过了,结果相同..
当其他人尝试时,它有效!
重启电脑,重新安装Chrome..一点都没变..
有什么想法吗?
谢谢
第一个字符串中有一个不可见的字符。
test[0].charCodeAt(0)
returns 8206。当您对这段代码 google 时,它表示它是一个 "left-to-right mark"。这是一个控制字符,它包含一些信息但没有任何内容可显示。
您还应该注意到,您可以删除或 select 该字符而不会注意到任何视觉变化。如果你删除那个角色,一切都会好起来的。