toLocaleLowerCase() および toLowerCase() メソッドで fiddle を試みました。
function ByLocale() {
document.getElementById("demo").innerText.toLocaleLowerCase();
}
function ByLower() {
document.getElementById("demo").innerText.toLowerCase();
}
<p>Click the button to convert the string "HELLO World!" to lowercase letters.</p>
<button onclick="ByLocale();">By Locale LowerCase</button>
<button onclick="ByLower();">By LowerCase</button>
<p id="demo">HELLO World!</p>
私の質問は:
toLowerCase
とは異なり、toLocaleLowerCase
はローカライズを考慮します。ほとんどの場合、ほとんどの言語で同様の出力が生成されますが、特定の言語の動作は異なります。
ToLocaleLowerCase()メソッドは、ロケール固有のケースマッピングに従って小文字に変換された文字列の値を返します。 toLocaleLowerCase()は、文字列自体の値には影響しません。ほとんどの場合、これはtoLowerCase()と同じ結果を生成しますが、ケースマッピングがUnicodeのデフォルトのケースマッピングに従っていないトルコ語などの一部のロケールでは、結果が異なる場合があります。
完全を期すために、toUpperCase
とtoLocaleUpperCase
は同様に動作しますが、大文字の場合を除きます。
次に、スニペットが何もしないという問題について説明します。実際には2つの問題があります。
これらのメソッドは新しい文字列を返し、元の文字列を変更しません(JavaScript文字列は不変です)。値を要素に再割り当てする必要があります。
innerText
は非標準であり、すべてのブラウザーで機能するわけではありません。代わりにtextContent
を使用し、innerText
のみを追加して、IEの古いバージョンをサポートします。
function ByLocale() {
var el = document.getElementById("demo");
el.textContent = el.textContent.toLocaleLowerCase();
}
function ByLower() {
var el = document.getElementById("demo");
el.textContent = el.textContent.toLowerCase();
}
<p>Click the button to convert the string "HELLO World!" to lowercase letters.</p>
<button onclick="ByLocale();">By Locale LowerCase</button>
<button onclick="ByLower();">By LowerCase</button>
<p id="demo">HELLO World!</p>