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 ao
protó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).
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"
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.