簡體   English   中英

JavaScript:字符串相等但比較返回false

[英]JavaScript: Strings are equal but comparing returns false

我目前正在為 Textual IRC 開發主題,我想將“主題是 ...”消息與頻道主題欄中顯示的主題進行比較,如果相同,則刪除它們。

導致問題的主題中包含 Umlaute 和 URI,如下所示:

++ Frische Austern ++ Nächste Sitzung: https:/some/uri/that/can/contain/umlaute" ++

當我打印舊主題和新主題時,它們看起來完全相同,直到尾隨和前導空格(我使用了trim()來消除它們)。

比較是用

if(oldTopic === newTopic){
    // do stuff
}

到目前為止我嘗試過的

類型檢查

我使用typeof來確保它們都是字符串類型而不是對象

元音消除

我使用replace(/ä/g, 'ae')來消除元音

網址消除

我用replace(/\\//g, '_')去掉了我用escape()轉義非 unicode 字符的正斜杠

不幸的是,沒有一個奏效。 同樣,如果我使用console.log來顯示兩個字符串,它們是完全相同的。 我期待一些 Unicode 的東西,你可以用不同的方式表示ä ,但替換它也不起作用。

我試過了,但我的 JavaScript 知識達到了極限。 我真的不知道為什么它不起作用。 該代碼適用於其他一些主題,既不涉及任何元音變音也不涉及 URL。

如果你們中的任何人碰巧知道答案,我將不勝感激。

提前致以親切的問候和感謝!

所以最后, https部分之前的空白是一種不同類型的空白,而不是所有其他空白。

它不是選項卡,我嘗試了不同的正則表達式符號來獲取它( \\f\\r和其他東西),但沒有成功。

最后有效的是使用replace(/\\s/g, '') \\s還包括選項卡,但我認為,除了將空格更改為選項卡之外,可能不會有主題更改,沒有其他更改。

請記住,如果制表符和空格必須對您的情況產生影響,則此解決方案將不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM