JavaScript: 字符串相等但比较 returns false
JavaScript: Strings are equal but comparing returns false
我目前正在为文本 IRC 开发主题,我想将 "Topic is ..." 消息与频道主题栏中显示的主题进行比较,如果相同则删除它们。
导致问题的主题同时包含变音符号和 URI,如下所示:
++ Frische Austern ++ Nächste Sitzung: https:/some/uri/that/can/contain/umlaute" ++
当我打印旧主题和新主题时,它们看起来完全一样,直到尾随和前导空格(我使用 trim()
来消除它们)。
与
进行比较
if(oldTopic === newTopic){
// do stuff
}
到目前为止我尝试了什么
类型检查
我使用 typeof
来确保它们都是 string 类型而不是 Object
元音消除
我用replace(/ä/g, 'ae')
消除了元音变音
URL淘汰
我用 replace(/\//g, '_')
去掉了正斜杠
我使用 escape()
转义非 unicode 字符
不幸的是 none 它起作用了。同样,如果我使用 console.log
来显示两个字符串,它们将完全相同。我期待一些 Unicode 的东西,你可以用不同的方式表示 ä,但替换它也不起作用。
我试过了,但我已经达到了我的 JavaScript 知识的极限。我真的不知道为什么它不起作用。该代码适用于其他一些主题,既不涉及任何元音变音也不涉及 URL.
如果你们中有人碰巧知道答案,我将不胜感激。
提前致以诚挚的问候和感谢!
所以最后 https
部分之前的空格是一种不同于其他所有空格的空格。
它不是一个选项卡,我尝试了不同的正则表达式符号来获取它(\f
、\r
等等),但没有成功。
最终起作用的是使用 replace(/\s/g, '')
。 \s
也涵盖制表符,但我认为,除了将空格更改为制表符外,可能不会有任何其他变化的主题更改。
请记住,如果制表符和空格必须对您的情况产生影响,则此解决方案将行不通。
我目前正在为文本 IRC 开发主题,我想将 "Topic is ..." 消息与频道主题栏中显示的主题进行比较,如果相同则删除它们。
导致问题的主题同时包含变音符号和 URI,如下所示:
++ Frische Austern ++ Nächste Sitzung: https:/some/uri/that/can/contain/umlaute" ++
当我打印旧主题和新主题时,它们看起来完全一样,直到尾随和前导空格(我使用 trim()
来消除它们)。
与
进行比较if(oldTopic === newTopic){
// do stuff
}
到目前为止我尝试了什么
类型检查
我使用 typeof
来确保它们都是 string 类型而不是 Object
元音消除
我用replace(/ä/g, 'ae')
消除了元音变音
URL淘汰
我用 replace(/\//g, '_')
去掉了正斜杠
我使用 escape()
转义非 unicode 字符
不幸的是 none 它起作用了。同样,如果我使用 console.log
来显示两个字符串,它们将完全相同。我期待一些 Unicode 的东西,你可以用不同的方式表示 ä,但替换它也不起作用。
我试过了,但我已经达到了我的 JavaScript 知识的极限。我真的不知道为什么它不起作用。该代码适用于其他一些主题,既不涉及任何元音变音也不涉及 URL.
如果你们中有人碰巧知道答案,我将不胜感激。
提前致以诚挚的问候和感谢!
所以最后 https
部分之前的空格是一种不同于其他所有空格的空格。
它不是一个选项卡,我尝试了不同的正则表达式符号来获取它(\f
、\r
等等),但没有成功。
最终起作用的是使用 replace(/\s/g, '')
。 \s
也涵盖制表符,但我认为,除了将空格更改为制表符外,可能不会有任何其他变化的主题更改。
请记住,如果制表符和空格必须对您的情况产生影响,则此解决方案将行不通。