我尝试使用fiddle和toLocaleLowerCase()方法toLowerCase()。
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>
&#13;
我的问题是:
答案 0 :(得分:23)
与toLowerCase
不同,toLocaleLowerCase
会考虑本地化。在大多数情况下,对于大多数语言,它们会产生类似的输出,但某些语言的行为会有所不同。
Check out the description on MDN:
toLocaleLowerCase()方法根据任何特定于语言环境的大小写映射返回转换为小写的字符串的值。 toLocaleLowerCase()不会影响字符串本身的值。在大多数情况下,这将产生与toLowerCase()相同的结果,但对于某些语言环境(例如土耳其语),其案例映射不遵循Unicode中的默认大小写映射,可能会有不同的结果。
为了完整性,toUpperCase
和toLocaleUpperCase
的行为相同,除了上壳。
现在针对您的代码段没有做任何事情的问题。实际上有两个问题。
这些方法返回新字符串,不修改原始字符串(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>