我目前正在为Textual IRC开发主题,我想将“Topic is ...”消息与频道主题栏中显示的主题进行比较,如果它们相同则删除它们。
导致问题的主题包括Umlaute和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')
来消除Umlaute
我使用replace(/\//g, '_')
来摆脱正斜杠
我使用escape()
来转义非unicode字符
不幸的是,它都没有奏效。再次,如果我使用console.log
来显示两个字符串,它们完全相同。我期待一些Unicode的东西,你可以用不同的方式代表ä,但是替换它也不起作用。
我已经尝试但是我的JavaScript知识达到了极限。我真的不知道为什么它不起作用。该代码已经处理了其他一些主题,既没有涉及任何Umlaute也没有URL。
如果你们中的任何一个碰巧知道答案,我会非常感激。
亲切的问候和提前谢谢!
答案 0 :(得分:1)
所以最后https
部分之前的空白是一种不同类型的空白,而不是其他所有空格。
它不是一个标签,我尝试了不同的正则表达式符号来获取它(\f
,\r
和东西),但它没有成功。
最终使用的是replace(/\s/g, '')
。 \s
也涵盖了标签,但我认为,除了将空格更改为标签之外,可能无法进行主题更改,没有其他更改。
请记住,如果标签和空格必须对您的情况产生影响,那么此解决方案将无法正常工作。