Разница между toLocaleLowerCase () и toLowerCase () [дубликат]
этот вопрос уже есть ответ здесь:
Я пытался скрипка С 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>
мои вопросы:
- что это Locale, потому что обе функции вроде же выход?
- в чем разница между этими двумя методами?
- почему код скрипки не выполняется?
1 ответов
в отличие от 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>