Estoy revisando los documentos de lodash y otras preguntas de Stack Overflow; si bien hay varias formas nativas de JavaScript para realizar esta tarea , ¿hay alguna manera de convertir una cadena en un título usando funciones puramente lodash (o al menos funciones prototípicas existentes) para no tener que usar una expresión regular o definir una nueva función?
p.ej
This string ShouLD be ALL in title CASe
debe convertirse
This String Should Be All In Title Case
javascript
lodash
brandonscript
fuente
fuente
Respuestas:
Esto se puede hacer con una pequeña modificación de
startCase
:Mostrar fragmento de código
fuente
_.startCase("aaa BBB ccc") === "Aaa BBB Ccc"
startCase
.:
, eso es un problema.Para texto no generado por el usuario, esto maneja más casos que la respuesta aceptada
fuente
con lodash versión 4.
_.upperFirst(_.toLower(str))
fuente
startCase
porque puede manejar más letras que az, por ejemplo å, ä y ö.fuente
upperFirst
lugar decapitalize
._.startCase
elimina la puntuación. El ejemplo_.startCase('first second etc...
devuelve la cadenaFirst Second Etc
startCase
todo lo convierte en un blanco, por ejemplo,user_name
seráUser Name
, y yo sólo queríaUser_name
como latext-transform: capitalize
propiedad de CSSHay respuestas mixtas a esta pregunta. Algunos recomiendan su uso
_.upperFirst
mientras que otros recomiendan_.startCase
.Conoce la diferencia entre ellos.
i)
_.upperFirst
transformará la primera letra de su cadena, luego la cadena puede ser de una sola palabra o varias palabras, pero la única primera letra de su cadena se transforma a mayúsculas._.upperFirst('jon doe')
salida:
Jon doe
consulte la documentación https://lodash.com/docs/4.17.10#upperFirst
ii)
_.startCase
transformará la primera letra de cada palabra dentro de su cadena._.startCase('jon doe')
salida:
Jon Doe
https://lodash.com/docs/4.17.10#startCase
fuente
_.lower()
.Aquí hay una forma de usar ÚNICAMENTE métodos lodash y no métodos incorporados:
fuente
También puede dividir la función de mapa para hacer palabras separadas
fuente
A menos que me lo perdiera, lodash no tiene sus propios métodos de minúsculas / mayúsculas.
fuente
_.upperFirst
sólo se aplica al primer carácter (sinónimo de_.capitalize()
?)capitalize
yupperFirst
hacer cosas diferentes.No tan conciso como la respuesta de @ 4castle, pero descriptiva y lodash-full, sin embargo ...
fuente
Aquí hay otra solución para mi caso de uso: "columna vertebral del diablo"
Simplemente:
El uso de startCase eliminaría el apóstrofo, así que tuve que solucionar esa limitación. Las otras soluciones parecían bastante complicadas. Me gusta esto porque es limpio y fácil de entender.
fuente
Esto se puede hacer solo con lodash
fuente
var words = ._words
El siguiente código funcionará perfectamente:
fuente
con lodash 4, puede usar _.capitalize ()
_.capitalize('JOHN')
Devuelve 'John'Consulte https://lodash.com/docs/4.17.5#capitalize para obtener más detalles
fuente