我试图拨弄与toLocaleLowerCase()和toLowerCase()方法.
function ByLocale() {
document.getElementById("demo").innerText.toLocaleLowerCase();
}
function ByLower() {
document.getElementById("demo").innerText.toLowerCase();
}
Click the button to convert the string "HELLO World!" to lowercase letters.
HELLO World!
我的问题是:
什么是Locale,因为这两个函数似乎都返回类似的输出?
这两种方法有什么区别?
为什么小提琴代码没有被执行?
Alexander O'.. 24
与此不同toLowerCase
,toLocaleLowerCase
将本地化考虑在内.在大多数情况下,对于大多数语言,它们将产生类似的输出,但是某些语言的行为会有所不同.
查看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();
}
Click the button to convert the string "HELLO World!" to lowercase letters.
HELLO World!
与此不同toLowerCase
,toLocaleLowerCase
将本地化考虑在内.在大多数情况下,对于大多数语言,它们将产生类似的输出,但是某些语言的行为会有所不同.
查看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();
}
Click the button to convert the string "HELLO World!" to lowercase letters.
HELLO World!