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())
異なる文字列を返しますか?
ソリューション: pmrotuleの答え@に動作するようです:問題は、あなたのキャラクターİ
は2つの文字で構成されていることである
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