Комментарии (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 перед вызовом метода или используйте опциональную цепочку