Javascript - Urls的奇怪字符串比较行为

时间:2014-10-15 08:51:10

标签: javascript c# string

最近我在编写我无法理解的javascript时遇到了字符串比较的问题。

我已经从完全相同的Url创建了两个字符串,当我比较它们时它返回false,但在重新分配相同的字符串后,比较返回true。

以下是我的例子:

var str1 = "http://google.com/";
var str2 = "http://google.com‏/";
var eq = str1 == str2;
alert(eq); //print false


str1 = "http://google.com/";
str2 = "http://google.com/";
eq = str1 == str2;
alert(eq); //print true

Here is the fiddle

我也在C#中编写了相同的代码,结果相同,为什么会发生这种情况,非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

com/之间的第二个字符串中有一个不可见的字符,您可以使用此foreach循环验证:

foreach(var c in str2)
        Console.WriteLine(c);

打印

h
t
t
p
:
/
/
g
o
o
g
l
e
.
c
o
m
‏
/

这就是为什么它返回false.BTW,我只是复制/粘贴你的代码,当我手动编写它时,它不会发生。