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

1124

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

Пример: "Ваше имя" на "ваше имя"

Теги:
string

11 ответов

1482
Лучший ответ
var lowerCaseName = "Your Name".toLowerCase();
  • 24
    Также учтите, что «toLowerCase не влияет на значение самой строки str». Это основано на документации здесь developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 0
    Какова временная и пространственная сложность функции toLowerCase() ?
Показать ещё 2 комментария
394

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

... работает точно так же, как toLowerCase за исключением того, что его результат дать правильный результат для хоста среды в текущем регионе, чем результат, не зависящий от локали. Будет только разница в несколько случаев (например, турецких), где правила для этого языкового конфликта с регулярные отображения событий Unicode.

Пример:

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 (а не условие ошибки).

  • 19
    +1, этот ответ заслуживает большего количества голосов, чем принятый ответ, который ничего не объясняет, я имею в виду
  • 0
    Часть о String.prototype.toLowerCase.apply(null) возвращающая null , кажется неправильной. Он выдает исключение TypeError когда я пытаюсь это сделать.
Показать ещё 1 комментарий
27

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

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

"Foo".toLowerCase();
document.getElementById('myField').value.toLowerCase();
19

Функции 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ç" или наоборот.

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

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

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.log('Original: ' + OriginalCase);
console.log('toLowerCase(): ' + lowercase);
console.log('toUpperCase(): ' + upperCase);
console.log('toTitleCase(): ' + titleCase);

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

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

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

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

"SomE StriNg".toLowerCase()

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

function strToLower (str) {
    return String(str).toLowerCase();
}
  • 0
    Для чего + '' ?
  • 2
    использовать String(str)
7

Метод или функция: 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.
7

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

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

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

Что вызвало ошибку "extension.toLowerCase не является функцией" Поэтому я попробовал этот кусок кода, который выявил проблему!

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

Выход был "(typeof extension) = > object < =" - поэтому AhHa, я НЕ получал строку var для ввода. Исправление прямо вперед - просто заставьте чертову вещь в строку!:

var extension = String(extension);

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

3

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

3

Выбор 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);
-4

Try

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

Демо - JSFiddle

  • 6
    Красиво, но не особенно в javascriptish, нет?
  • 0
    Опираясь на то, что сказал @ some-non-descript-user, OP ищет решение JavaScript. Хотя этот ответ действителен, он не отвечает на вопрос ОП согласно заданным параметрам.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню