2013-12-12 33 views
3

給定兩個字符串,並localeCompare總是工作一樣的平等的比較平等的三倍?對於JS字符串,是a.localeCompare(B)=== 0總是相同作爲=== B'

中國文字和星芒人物似乎確定

function compareEm(a,b) { 
    if (a === b != a.localeCompare(b) === 0) { 
     console.log(a, b, a === b, a.localeCompare(b)) 
    } 
} 

compareEm('\u6f22', "漢") // no output 
compareEm('', "\uD83D\uDCA9") // no output 

是否有這個地方不成立的情況下? 如果我改變我的語言環境,將它不再持有真的嗎?

+0

是的,他們應該永遠是相同的。 – mc10

回答

2

a.localeCompare(b) === 0相當於a === b

localeCompare

  1. 你開始關注非零答案的符號(例如'á'.localeCompare('b')

  2. ,或者如果你添加標記,例如只有真正變得有趣不區分大小寫。

僅供參考,localeCompare在瀏覽器中對於不相等的字符串可能不一致。

+0

是的靈敏度標誌似乎使他們不同。很高興聽到沒有任何標誌,他們總是相同的。謝謝 –

相關問題