JavaScript的toLowerCase()函數返回不同的字符串
console.log("HİNDİ".toLocaleLowerCase() == "hindi");
console.log("HİNDİ" == "hindi");
console.log("HİNDİ".toLowerCase());
console.log("HİNDİ".toLocaleLowerCase())
console.log("HİNDİ".toLowerCase())
我建立一個搜索功能,但我遇到的事情:
"HİNDİ".toLocaleLowerCase() // "hindi"
"hindi" == "HİNDİ".toLocaleLowerCase() //false
到底是什麼怎麼回事?
解決方案: @ pmrotule的答案似乎工作:
function to_lower(s)
{
var n = "";
for (var i = 0; i < s.length; i++) // do it for one character at a time
{
var c = s[i].toLowerCase();
// call replace() only if the character has a length > 1
// after toLowerCase()
n += c.length > 1 ? c[0].replace(/[^ -~]/g,'') : c;
}
return n;
}
感謝,
不同編碼的字符串? Javascript在內部使用UTF-16。你可以在控制檯中運行''HİNDİ「.toLocaleLowerCase()'。此外,您可以嘗試直接鍵入字符代碼。例如:'「\ u90AB」' –
這兩個UTF8,你也可以在控制檯上試試它在stackowerflow上。同樣的結果。 – serkan
請確保在HTML文件的'
'部分有這樣的內容:「(HTML5)或HTML4:」'。 – trincot