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

Такой вариант не работает:

let name = 'john';

name[0] = name[0].toUpperCase();

console.log(name[0]);

console.log(name[0].toUpperCase());

Подскажите пожалуйста вторая строка кода разве не должна изменить и переписать регистр первого знака в строке?


Ответы (5 шт):

Автор решения: Vasily

Поэтапно:

const name = "john"

// делим слово на отдельные буквы
const splitted = name.split("")

// делаем первую букву в массиве заглавной 
const first = splitted[0].toUpperCase()

// копируем массив что бы 
// не модицицировать splitted напрямую
// если вдрг он нам понадобиться далее
const rest = [...splitted] 

// удаляем первую букву из массива
rest.splice(0, 1)

// соединияем все обратно в строку
const result = [first, ...rest].join("")

console.log(result)
// John

За раз:

const name = "john"

const result = name.charAt(0).toUpperCase() + name.slice(1)

console.log(result)
// John

→ Ссылка
Автор решения: MoloF

Так же можно добавить функцию для перевода первого символа в верхний регистр глобально для типа String

String.prototype.firstLetterToUppercase = function() {
    return this[0].toUpperCase() + this.slice(1);
}

const name = 'john';

console.log(
    name.firstLetterToUppercase()
);

→ Ссылка
Автор решения: Deonis

Еще один вариант. Принципиальное отличие в том, что меняем именно первую букву, а не любой первый символ в строке. Ведь первым символом может быть и пробел, и дефис, если это диалог, и открывающиеся кавычки при цитировании и т.д.

let str = ' - hi there!';

str = str.replace(/^[^a-zа-яё]*([a-zа-яё])/i, function(m){
    return m.toUpperCase();
});

console.log(str);

→ Ссылка
Автор решения: Alexander Bolotov
let name = 'john';
name = name.replace(name[0], name[0].toUpperCase()); /// 'John'

Короткий вариант: заменяем в строке первую букву name[0], на неё же заглавную name[0].toUpperCase(). Если строка начинается не обязательно буквой (пробел, намбер) то можно и нужно применить regexp, как в одном из уже предложенных вариантов.

→ Ссылка
Автор решения: Эльхан Асадов

let abc = hello; abc[0].toUpperCase()+abc.slice(1)

→ Ссылка