Cómo poner en mayúscula la primera letra y en minúsculas el resto de la cadena
Estoy tratando de poner en mayúscula la primera letra de solo la primera palabra de una oración.
Estos son los datos en el archivo tsx {this.text ({id:, downloadPriceHistory
defaultMessage: 'Download Price History'})} la identificación que se muestra arriba proviene de la base de datos donde podría enviarse a la API en varias formas.
He intentado usar esta lógica a continuación:
export function titleCase(string) {
string = 'hello World';
const sentence = string.toLowerCase().split('');
for (let i = 0; i < sentence.length; i++) {
sentence[i] = sentence[i][0].toUpperCase() + sentence[i];
}
return sentence;
}
Por ejemplo, para la entrada "Download Price History"
, el resultado debería ser "Download price history"
.
Respuestas
Solo necesita poner en mayúscula la primera letra y concatenarla con el resto de la cadena convertida a minúsculas.
function titleCase(string){
return string[0].toUpperCase() + string.slice(1).toLowerCase();
}
console.log(titleCase('Download Price History'));
Esto también se puede lograr con CSS estableciendo text-transform
to lowercase
para todo el elemento y usando el ::first-letter
pseudo elemento para establecer text-transform
to uppercase
.
.capitalize-first {
text-transform: lowercase;
}
.capitalize-first::first-letter {
text-transform: uppercase;
}
<p class="capitalize-first">Download Price History</p>
intente - ponga el resto de la cadena en minúsculas también.
export function titleCase(string) {
return string[0].toUpperCase() + string.substr(1).toLowerCase()
}
¿Por qué no poner en minúsculas toda la cadena y en mayúsculas solo la primera letra de la nueva cadena?
function titleCase(string) {
let sentence = string.toLowerCase();
let titleCaseSentence = sentence.charAt(0).toUpperCase() + sentence.substring(1, sentence.length);
return titleCaseSentence;
}
(Además, está borrando su parámetro de la función con esa primera línea)
string = 'hello World';
Mi sugerencia es que obtenga el primer elemento de la cadena y lo ponga en mayúsculas y obtenga el resto de la cadena y aplique la función en minúsculas.
titleCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
}
Usando CSS:
p {
text-transform: lowercase;
}
p::first-letter {
text-transform: uppercase
}
Usando JS:
const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1).toLowercase();