繁体   English   中英

两个看似相等的字符串在javascript中不相等

[英]Two seemingly equal strings not equal in javascript

我有两个字符串,我试图比较它们。 我用引号打印它们以确保没有空格字符。 然后我使用相等运算符来查看它们是否相等。 这是结果

'! Invite to Troy Florida Event'
'! Invite to Troy Florida Event'
false

以下是创建输出的代码:

"\'"+ String(list_name) + 
"\'<BR/>\'" + 
String(dialer_list_selections[5][0]) +  "\'<BR/>" + 
String(String(list_name) === String(dialer_list_selections[5][0]))

任何想法如何我可以调试这个和发生了什么?

列表中的所有其他字符串都能正常工作。

按字符代码打印字符串字符代码确实表明它们确实不同。

Using this code for both and strings and printing I get.
    test_string = "";
    for (index = 0; index < String(list_name).length; ++index) {
        test_string +=  "," +String(list_name).charCodeAt(index);
    }

33,32,73,110,118,105,116,101,32,116,111,32,84,114,111,121,32,70,108,111,114,105,100,97,32,69,118,101,110,116
33,32,32,73,110,118,105,116,101,32,116,111,32,84,114,111,121,32,70,108,111,114,105,100,97,32,69,118,101,110,116

现在是否有一种方法可以确保字符串比较返回true,如果字符串在打印时看起来相同,即使它们具有不同的charCodes和长度?

你的问题似乎是两个相似的字符串与不同的空白字符的比较。 为什么不在比较之前删除所有空格字符? 您可以使用像somestring.replace(/\\s+/g, "")这样的正则表达式来完成。

所以,你的考试成了

String(
    String(list_name.replace(/\s+/g, "")) === 
    String(dialer_list_selections[5][0].replace(/\s+/g, ""))
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM