Como faço a primeira letra de uma letra maiúscula em JavaScript?

Como fazer a primeira letra de uma letra maiúscula, mas não mudar o caso de nenhuma das outras letras?

Por exemplo:

  • "isto é um teste" -> "Isto é um teste"
  • "a Torre Eiffel" -> "A Torre Eiffel"
  • "/index.html" -> "/index.html"
function capitalizeFirstLetter(string) {
    return string.charAt(0).toUpperCase() + string.slice(1);
}

Algumas outras respostas modificam String.prototype' (esta resposta também costumava modificar), mas eu desaconselharia isto agora devido à manutenção (difícil de descobrir onde a função está sendo adicionada aoprotótipo' e poderia causar conflitos se outro código utilizar o mesmo nome / um navegador adiciona uma função nativa com o mesmo nome no futuro).

Comentários (32)

Aqui's uma abordagem mais orientada aos objectos:

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
}

Você'd chamaria a função, assim:

"hello world".capitalize();

Com o resultado esperado:

"Hello world" 
Comentários (21)

Aqui está uma função chamada ucfirst() (abreviação para " primeira letra maiúscula"):

function ucfirst(str) {
    var firstLetter = str.substr(0, 1);
    return firstLetter.toUpperCase() + str.substr(1);
}

Você pode capitalizar uma string chamando ucfirst("alguma string") -- por exemplo,

ucfirst("this is a test") --> "This is a test"

Funciona dividindo o cordel em duas partes. Na primeira linha ele puxa **firstLetter* e depois na segunda linha ele capitaliza firstLetter chamando firstLetter.toUpperCase() e a junta com o resto da string, que é encontrada chamando str.substr(1)**.

Você pode pensar que isso falharia por um fio vazio, e de fato em uma língua como C você teria que atender a isso. No entanto, no JavaScript, quando você pega um substrato de uma corda vazia, você apenas recebe uma corda vazia de volta.

Comentários (4)