Quiero capitalizar el primer carácter de la cadena en angularjs
Como lo usé {{ uppercase_expression | uppercase}}
, convertí toda la cadena a mayúsculas.
Quiero capitalizar el primer carácter de la cadena en angularjs
Como lo usé {{ uppercase_expression | uppercase}}
, convertí toda la cadena a mayúsculas.
Respuestas:
usa este filtro de mayúsculas
fuente
return (angular.isString(s) && s.length > 0) ? s[0].toUpperCase() + s.substr(1).toLowerCase() : s;
. Si no es una cadena, devuélvala sin cambios.Yo diría que no use angular / js, ya que simplemente puede usar css en su lugar:
En su CSS, agregue la clase:
Luego, simplemente envuelva la expresión (por ej.) En su html:
No se necesita js;)
fuente
:first-letter
pseudoelementos. ¿Algo más dejado al descubierto? :)Si usa Bootstrap , simplemente puede agregar la
text-capitalize
clase auxiliar:EDITAR: en caso de que el enlace vuelva a morir:
fuente
text-transform: capitalize;
Si está usando Angular 4+, entonces puede usar
titlecase
No tienes que escribir ninguna pipa.
fuente
una mejor manera
fuente
Si busca rendimiento, trate de evitar el uso de filtros AngularJS ya que se aplican dos veces por cada expresión para verificar su estabilidad.
Una mejor manera sería usar el
::first-letter
pseudo-elemento CSS context-transform: uppercase;
. Sinspan
embargo, eso no se puede usar en elementos en línea , por lo que lo mejor sería usarlotext-transform: capitalize;
en todo el bloque, que capitaliza cada palabra.Ejemplo:
fuente
::first-letter
no funciona endisplay: inline
odisplay: flex
, solo endisplay:block
oinline-block
elementosMe gusta la respuesta de @TrampGuy
CSS es siempre (bueno, no siempre) una mejor opción, por lo que
text-transform: capitalize;
es el camino a seguir.Pero, ¿qué pasa si su contenido es todo en mayúsculas para empezar? Si prueba
text-transform: capitalize;
contenido como "FOO BAR", todavía obtendrá "FOO BAR" en su pantalla. Para evitar ese problema, puede poner eltext-transform: capitalize;
en su CSS, pero también en minúscula su cadena, por lo que:donde estamos usando la clase de capitalización de @ TrampGuy:
Entonces, pretendiendo que
foo.awsome_property
normalmente imprimiría "FOO BAR", ahora imprimirá la deseada "Foo Bar".fuente
si desea poner en mayúscula cada palabra de la cadena (en progreso -> En progreso), puede usar una matriz como esta.
fuente
Esta es otra forma:
fuente
Para Angular 2 y superior, puede usar
{{ abc | titlecase }}
.Consulte la API de Angular.io para obtener una lista completa.
fuente
fuente
Para AngularJS de meanjs.org, coloco los filtros personalizados en
modules/core/client/app/init.js
Necesitaba un filtro personalizado para capitalizar cada palabra en una oración, así es como lo hago:
El crédito de la función de mapa va a @Naveen raj
fuente
En angular 7+ que tiene tubería incorporada
fuente
Si no desea crear un filtro personalizado, puede usarlo directamente
fuente
fuente
Solo para agregar mi propia opinión sobre este tema, yo mismo usaría una directiva personalizada;
Una vez declarado, puede colocarlo dentro de su Html como se muestra a continuación;
fuente
En cambio, si desea poner en mayúscula cada palabra de una oración, puede usar este código
y simplemente agregue el filtro "capitalizar" a su entrada de cadena, por ejemplo - {{name | capitalizar}}
fuente
en Angular 4 o CLI puede crear un TUBO como este:
fuente
Angular tiene 'titlecase' que escribe en mayúscula la primera letra de una cadena
Por ejemplo:
se mostrará como EnvName
Cuando se usa con interpolación, evite todos los espacios como
y la primera letra de valor de envName se imprimirá en mayúscula.
fuente
fuente
Puede agregar el tiempo de ejecución de la funcionalidad de mayúsculas como:
fuente
{{ uppercase_expression | capitaliseFirst}}
Deberia trabajarfuente
Agregando a la respuesta de Nidhish,
Para las personas que está utilizando AngularJs y que buscan capitalizar la primera letra de cada palabra en la cadena, use el siguiente código:
fuente