Javascript"" .length返回1而不是0

时间:2016-08-20 23:43:59

标签: javascript string

好的,所以我很难被这个感到难过。 我从javascript库中获取了一个字符串值。我打电话给myStringVar = myStringVar.trim(),但当我myStringVar.substring(0,1)时,它会给我一个空字符串。当我调用var arr = myStringVar.split('')时,数组中的第一个元素是空字符串,当我调用arr [0] .trim()。length时,它返回1而不是零。

enter image description here

我错过了什么吗?

修改 根据评论和回复,我能够将问题分解为字符串开头存在非可视unicode字符。我现在将尝试找到一种方法从字符串中删除这些字符....或者更好地提取字符串中感兴趣的部分。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

最可能的答案是你的字符串中有一些不可见的Unicode字符(例如,"⁣",U + 2063 INVISIBLE SEPARATOR)。
只包含这样一个字符的字符串会向用户(或程序员)看起来像一个空字符串,但实际上它的长度为1,因为它确实包含一个字符。

测试是否是这种情况的一种简单方法是使用string.charCodeAt(0)获取字符串中字符的Unicode字符代码。然后,您可以在Unicode表(例如this one)中查找此值,该表应该告诉您字符串中是否有隐藏字符。