Как сделать первую букву строки заглавной в JavaScript?

Как перевести первый символ строки в заглавный

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

Примеры результата:

  • "привет мир""Привет мир"
  • "да здравствует Зима""Да здравствует Зима"
  • "/index.html""/index.html"
function capitalizeFirst(text) {
    // Как лучше всего реализовать эту функцию?
    return text;
}

let message = "поздравляю всех";
console.log(capitalizeFirst(message)); // должно выводить "Поздравляю всех"

Пробовал разные подходы, но результата не достиг. Какой самый эффективный способ решить эту задачу?

А я через регулярки делаю - text.replace(/^[а-яё]/i, match => match.toUpperCase()) для русских или /^[a-z]/i для английских. Удобно - сразу проверяет, что первый символ буква, и только тогда меняет. Главное учесть язык, а то может глючить.

Я делаю это через charAt и slice - просто и работает. В твоей функции пиши return text.charAt(0).toUpperCase() + text.slice(1). charAt(0) хватает первый символ, toUpperCase делает заглавным, slice(1) добавляет остальное со второго символа. Если первый символ не буква, toUpperCase его не тронет, так что с “/index.html” всё нормально отработает.

Лучше всего через charAt и isNaN. Проверяешь isNaN(text.charAt(0)) - если true, то это буква, делаешь toUpperCase(). На цифрах не сломается. Или просто text[0].toUpperCase() + text.substring(1) - тоже работает, только substring вместо slice.