Преобразовать строку JavaScript в нижний регистр?

Как преобразовать строковое значение JavaScript в строчные буквы?

Пример: от "Your Name" до "your name"

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1 343
0
469 420
14
Перейти к ответу Данный вопрос помечен как решенный

Ответы 14

Да, любая строка в JavaScript имеет метод toLowerCase(), который вернет новую строку, которая является старой строкой во всех нижних регистрах. Старая строка останется без изменений.

Итак, вы можете сделать что-то вроде:

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();
Ответ принят как подходящий

var lowerCaseName = "Your Name".toLowerCase();

Учтите также, что «toLowerCase не влияет на значение самой строки str». Это основано на документации здесь developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

Cary Bondoc 27.06.2014 04:52

какова временная и пространственная сложность функции toLowerCase()?

Ramzan Chasygov 04.04.2018 20:41

@RamzanChasygov Это одновременно O (n) и быстрее, чем повторная реализация на JavaScript, если только у вас нет движка JavaScript, запрограммированного очень умными идиотами.

wizzwizz4 09.04.2018 15:13

Более безопасный способ вызвать toLowerCase() для переменных - (varName || '').toLowerCase();

Dinesh Pandiyan 22.12.2018 05:31

Используйте методы toLowerCase или toLocaleLowerCase объекта Нить. Разница в том, что toLocaleLowerCase будет учитывать текущую локаль пользователя / хоста. Согласно § 15.5.4.17 Спецификация языка ECMAScript (ECMA-262), toLocaleLowerCase

…works exactly the same as toLowerCase except that its result is intended to yield the correct result for the host environment’s current locale, rather than a locale-independent result. There will only be a difference in the few cases (such as Turkish) where the rules for that language conflict with the regular Unicode case mappings.

Пример:

var lower = 'Your Name'.toLowerCase();

Также обратите внимание, что функции toLowerCase и toLocaleLowerCase реализованы для общей работы с типом значения Любые. Следовательно, вы можете вызывать эти функции даже для объектов, отличных от String. Это будет означать автоматическое преобразование в строковое значение перед изменением регистра каждого символа в результирующем строковом значении. Например, вы можете применятьtoLowerCase прямо в такую ​​дату:

var lower = String.prototype.toLowerCase.apply(new Date());

и что фактически эквивалентно:

var lower = new Date().toString().toLowerCase();

Вторая форма обычно предпочтительна из-за ее простоты и удобочитаемости. В более ранних версиях IE первая имела то преимущество, что она могла работать со значением null. В результате применения toLowerCase или toLocaleLowerCase к null будет выдан null (а не состояние ошибки).

+1, этот ответ заслуживает гораздо большего количества голосов, чем принятый ответ, который вообще ничего не объясняет, я имею в виду

Frederik.L 24.05.2013 16:31

Часть о том, что String.prototype.toLowerCase.apply(null) возвращает null, не кажется правильной. Когда я пробую, он выдает исключение TypeError.

JohnnyHK 20.07.2013 19:52

@JohnnyHK Ты прав. Этот бит сохранялся в более ранних версиях IE, где он был протестирован во время первоначальной публикации ответа. Я обновил ответ, чтобы отразить ваш отзыв. Спасибо.

Atif Aziz 18.12.2013 16:28

toLocaleUpperCase () или функции нижнего регистра ведут себя не так, как должны.

Например, в моей системе Safari 4, Chrome 4 Beta, Firefox 3.5.x он неправильно конвертирует строки с турецкими символами.

Браузеры отвечают на navigator.language как «en-US», «tr», «en-US» соответственно.

Но, насколько я смог найти, нет никакого способа получить пользовательскую настройку Accept-Lang в браузере.

Только Chrome вызывает у меня проблемы, хотя я настроил каждый браузер как предпочтительный языковой стандарт tr-TR.

Я думаю, что эти настройки влияют только на HTTP-заголовок, но мы не можем получить доступ к этим настройкам через JS.

В Документация Mozilla говорится: «Символы в строке преобразуются в ... с соблюдением текущей локали.

Для большинства языков это будет то же самое, что ... ".

Я думаю, что это действительно для турецкого языка, не отличается он настроен как en или tr.

На турецком языке следует преобразовать «DİNÇ» в «dinç» и «DIN» в «dınç» или наоборот.

Accept-Language и navigator.language - это две совершенно разные настройки. Accept-Language отражает выбранные пользователем предпочтения относительно того, какие языки они хотят получать на веб-страницах (и этот параметр, к сожалению, недоступен для JS). navigator.language просто отражает установленную локализацию веб-браузера и, как правило, не должен использоваться ни для чего. Оба эти значения не связаны с локалью системы, которая является битом, который определяет, что будет делать toLocaleLowerCase(); это настройка уровня ОС, выходящая за рамки настроек браузера.

bobince 30.09.2010 02:15

Я думал, что Accept-Language и navigator.language должны быть как-то связаны. Вы можете настроить язык по умолчанию по порядку с помощью экранов настроек браузеров, но вы не можете настроить, какой язык navigator.language должен отвечать. Я думаю, должна быть другая форма функции toLowerCase (), которая получает параметр локали.

sanilunlu 21.03.2011 16:33

Да, действительно должно быть. К сожалению, функции JavaScript, связанные с локалью, слабы, плохо определены и, как правило, ненадежны.

bobince 21.03.2011 22:40

Просто примеры для toLowerCase(), toUpperCase() и прототип для еще не доступных toTitleCase() или toProperCase()

String.prototype.toTitleCase = function() {
  return this.split(' ').map(i => i[0].toUpperCase() + i.substring(1).toLowerCase()).join(' ');
}

String.prototype.toPropperCase = function() {
  return this.toTitleCase();
}

var OriginalCase = 'Your Name';
var lowercase = OriginalCase.toLowerCase();
var upperCase = lowercase.toUpperCase();
var titleCase = upperCase.toTitleCase();

console.info('Original: ' + OriginalCase);
console.info('toLowerCase(): ' + lowercase);
console.info('toUpperCase(): ' + upperCase);
console.info('toTitleCase(): ' + titleCase);

отредактировано 2018

toPropperCase должен быть toProperCase

Ian 14.03.2019 17:53

-1 этот код очень подвержен ошибкам со всем, что не является ASCII. Например, если ввести немецкий язык "die straße", вы получите "Die Strasse" в качестве заголовка. Правильнее было бы "Die Straße". Кроме того, загрязнение прототипов в настоящее время не приветствуется.

ComFreek 18.04.2020 16:40

Я обратил внимание, что многие люди используют Ищу для strtolower() в JavaScript. Они ожидают того же имени функции, что и на других языках, поэтому этот пост здесь.

Я бы рекомендовал использовать функцию Javascript родные

"SomE StriNg".toLowerCase()

Вот функция, которая ведет себя точно так же, как и функция PHP (для тех, кто переносит код PHP в js)

function strToLower (str) {
    return String(str).toLowerCase();
}

Обратите внимание, что функция будет работать ТОЛЬКО с объектами STRING.

Например, я использовал плагин и не понимал, почему я получаю Ошибка JS "extension.tolowercase не является функцией".

 onChange: function(file, extension)
    {
      alert("extension.toLowerCase()=>" + extension.toLowerCase() + "< = ");

В результате возникла ошибка «extension.toLowerCase не является функцией». Итак, я попробовал этот фрагмент кода, который выявил проблему!

alert("(typeof extension)=>" + (typeof extension) + "< = ");;

Результатом было «(typeof extension) => object <=» - так что, да, я НЕ получал строковую переменную для ввода. Исправление простое - просто вставьте эту чертову штуку в String !:

var extension = String(extension);

После приведения функция extension.toLowerCase () работала нормально.

Метод или функция: toLowerCase (), toUpperCase ()

Описание: эти методы используются для покрытия строки или алфавита от нижнего регистра до верхнего регистра или наоборот. например: «и» на «И».

Преобразование в верхний регистр: - Пример кода: -

<script language=javascript>
var ss = " testing case conversion method ";
var result = ss.toUpperCase();
document.write(result);
</script>

Результат: МЕТОД ПРЕОБРАЗОВАНИЯ ТЕСТИРОВАНИЯ

Преобразование в нижний регистр: - Пример кода:

<script language=javascript>
var ss = " TESTING LOWERCASE CONVERT FUNCTION ";
var result = ss.toLowerCase();
document.write(result);
</script>

Результат: тестирование функции преобразования в нижний регистр

Объяснение: В приведенных выше примерах

toUpperCase() method converts any string to "UPPER" case letters.
toLowerCase() method converts any string to "lower" case letters.

Пытаться

<input type = "text" style = "text-transform: uppercase">  //uppercase
<input type = "text" style = "text-transform: lowercase">  //lowercase

Демо - JSFiddle

Красиво, но не особенно JavaScript, не так ли?

some-non-descript-user 09.01.2016 18:46

Основываясь на том, что сказал @ some-non-descript-user, OP ищет решение JavaScript. Хотя этот ответ действителен, он не отвечает на вопрос OP в соответствии с определенными параметрами.

boxspah 28.04.2016 06:22

Отлично ... Я искал метод CSS и зашел на эту страницу

Abhishek Nalin 30.01.2017 10:35

Вариант 1: использование toLowerCase ()

var x = 'ABC';
x = x.toLowerCase();

Вариант 2: Использование собственной функции

function convertToLowerCase(str) {
  var result = '';

  for (var i = 0; i < str.length; i++) {
    var code = str.charCodeAt(i);
    if (code > 64 && code < 91) {
      result += String.fromCharCode(code + 32);
    } else {
      result += str.charAt(i);
    }
  }
  return result;
}

Назовите это как:

x = convertToLowerCase(x);

Первый вариант уже упоминался в других ответах, второй вариант плохо работает для всего, что не является ASCII.

ComFreek 18.04.2020 16:41

Просто используйте JS toLowerCase()
let v = "Your Name" let u = v.toLowerCase(); или
let u = "Your Name".toLowerCase();

вы можете использовать встроенный метод .toLowerCase () для строк javascript. пример: var x = "Привет"; x.toLowerCase ();

Это идентично принятому ответу за исключением хорошего форматирования кода.

reggaeguitar 24.04.2019 23:49

Поднос этот короткий путь

  var lower = (str+"").toLowerCase();

Если вы хотите построить его самостоятельно:

function toLowerCase(string) {

let lowerCaseString = "";

for (let i = 0; i < string.length; i++) {
    //find ASCII charcode
    let charcode = string.charCodeAt(i);

    //if uppercase
    if (charcode > 64 && charcode < 97){
        //convert to lowercase
        charcode = charcode + 32
    }

    //back to char
    let lowercase = String.fromCharCode(charcode);

    //append
    lowerCaseString = lowerCaseString.concat(lowercase);
}

return lowerCaseString

}

Другие вопросы по теме