← Назад к вопросам

Как работает метод ToLowerCase?

1.7 Middle🔥 181 комментариев
#JavaScript Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как работает метод toLowerCase()

Метод toLowerCase() — один из базовых методов String в JavaScript. Он преобразует все прописные буквы строки в строчные буквы и возвращает новую строку, не изменяя исходную (строки неизменяемы).

Основное использование

const text = 'Hello WORLD';
const lower = text.toLowerCase();

console.log(lower);  // 'hello world'
console.log(text);   // 'Hello WORLD' (исходная не изменилась)

Метод вызывается на строке и возвращает новую строку:

'JavaScript'.toLowerCase();       // 'javascript'
'HTML 5 API'.toLowerCase();       // 'html 5 api'
'123ABC'.toLowerCase();           // '123abc'
'!@#$%'.toLowerCase();            // '!@#$%' (спецсимволы не меняются)

Параметры

toLowerCase() не принимает параметров:

// ✅ Правильно
const lower = str.toLowerCase();

// ❌ Параметры игнорируются
const lower = str.toLowerCase('en-US'); // параметр не используется

Локализация: ToLocaleCase

Для локализованного преобразования используйте toLocaleLowerCase():

const turkish = 'İstanbul'.toLocaleLowerCase('tr-TR');
console.log(turkish); // 'istanbul'

const english = 'İstanbul'.toLowerCase();
console.log(english); // 'i̇stanbul' (может быть другое)

// В турецком языке заглавная I -> маленькая ı (без точки)
// В английском I -> i (с точкой)

Практические примеры

Нормализация пользовательского ввода

function validateEmail(email) {
  const normalized = email.toLowerCase();
  const isValid = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(normalized);
  return isValid;
}

validateEmail('John.Doe@EXAMPLE.COM'); // true
validateEmail('ADMIN@TEST.ORG');       // true

Сравнение строк без учёта регистра

function areEqualIgnoreCase(str1, str2) {
  return str1.toLowerCase() === str2.toLowerCase();
}

areEqualIgnoreCase('Hello', 'HELLO'); // true
areEqualIgnoreCase('World', 'WoRLd'); // true
areEqualIgnoreCase('Test', 'Other');  // false

Фильтрация массива по условию

const users = [
  { name: 'John', role: 'ADMIN' },
  { name: 'Jane', role: 'User' },
  { name: 'Bob', role: 'MODERATOR' }
];

const admins = users.filter(
  user => user.role.toLowerCase() === 'admin'
);
console.log(admins); // [{ name: 'John', role: 'ADMIN' }]

Преобразование URL для сравнения

function normalizeUrl(url) {
  // Доменные имена нечувствительны к регистру
  return url.toLowerCase();
}

const url1 = 'https://GITHUB.COM/user/repo';
const url2 = 'https://github.com/USER/repo';

const normalized1 = normalizeUrl(url1);
const normalized2 = normalizeUrl(url2);

console.log(normalized1 === normalized2); // false (пути разные)

Поиск в строке без учёта регистра

function findIgnoreCase(text, searchTerm) {
  const lowerText = text.toLowerCase();
  const lowerSearch = searchTerm.toLowerCase();
  return lowerText.includes(lowerSearch);
}

findIgnoreCase('Hello World', 'WORLD');  // true
findIgnoreCase('JavaScript', 'script');  // true
findIgnoreCase('React', 'vue');          // false

Проблемы и особенности

Производительность

// Для больших строк это может быть медленно
const largeString = 'x'.repeat(1000000);
const start = performance.now();
const lower = largeString.toLowerCase();
const end = performance.now();
console.log(`Время: ${end - start}ms`);

Unicode символы

// Большинство символов преобразуются корректно
console.log('Ñoño'.toLowerCase());     // 'ñoño' (испанский)
console.log('ПРИВЕТ'.toLowerCase());   // 'привет' (русский)
console.log('日本'.toLowerCase());      // '日本' (японский, не меняется)

// Бета символ
console.log('ß'.toLowerCase());        // 'ß' (немецкий)
console.log('SS'.toLocaleLowerCase()); // 'ss' (в некоторых локалях)

С null или undefined

// Вызов на null/undefined вызывает ошибку
const value = null;
value.toLowerCase(); // TypeError: Cannot read property 'toLowerCase' of null

// Защита
function safeLowerCase(value) {
  return value?.toLowerCase() || '';
}

safeLowerCase(null);      // ''
safeLowerCase('HELLO');   // 'hello'
safeLowerCase(undefined); // ''

Связанные методы

const str = 'Hello World';

// toLowerCase - всё строчное
console.log(str.toLowerCase());     // 'hello world'

// toUpperCase - всё прописное
console.log(str.toUpperCase());     // 'HELLO WORLD'

// toLocaleLowerCase - с учётом локали
console.log(str.toLocaleLowerCase()); // 'hello world'

// toLocaleUpperCase - с учётом локали
console.log(str.toLocaleUpperCase()); // 'HELLO WORLD'

Рекомендации

  • Используйте toLowerCase() для нормализации пользовательского ввода (email, юзернеймы)
  • Для сравнения строк преобразуйте обе стороны в нижний регистр
  • Помните о локализации — используйте toLocaleLowerCase() при работе с интернациональными текстами
  • Проверяйте на null/undefined перед вызовом метода или используйте опциональную цепочку
Как работает метод ToLowerCase? | PrepBro