有什么理由说JS字符串不能自相同吗? (见图)

时间:2013-07-09 17:18:56

标签: javascript string

为什么字符串不能与自己相等?我正在处理大量的字符串,最后一些字符串不等于它们。

这是一张显示我正在谈论的内容的图片。

Example Image

有什么想法吗?

解决: 有一个回车符(\ r)连接到其中一个字符串的末尾。我使用String.length来查看每个字符串的长度,它们不同(5和6)。然后我使用String.charAt查看了字符串。在Chrome中,这显示一个空字符串(“”)。但是,空字符串不是虚假值。我在FireFox中尝试了这个,它显示了回车。

3 个答案:

答案 0 :(得分:10)

在任何语言中,如果一个字符串包含一些不可读的字符,而另一个字符串不包含它们,即使它们看起来与人类相同也是如此。

尝试打印长度并打印char-to-char

答案 1 :(得分:3)

可能是其中一个字符是ascii等价物的UTF-8表示。

这是一个音译jquery插件:http://code.google.com/p/jquery-transliteration-plugin/wiki/Usage

最后还可能有一个控制序列,如BOM。

答案 2 :(得分:-1)

您可能需要将字符串值类型与字符串进行比较。

请参阅Difference between the javascript String Type and String Object?

解决方案:使用string.valueOf()或使用double equals而不是triple,让javascript将String对象强制转换为字符串值。

从我的控制台     a = new String(" asdf");     b =" asdf&#34 ;;     a === b; //假     a == b; //真的     a.valueOf()=== b.valueOf(); // true