Je regarde à travers la documentation de lodash et d'autres questions de Stack Overflow - bien qu'il existe plusieurs façons natives de JavaScript d'accomplir cette tâche , y a-t-il un moyen de convertir une chaîne en cas de titre en utilisant des fonctions purement lodash (ou du moins des fonctions prototypiques existantes) pour ne pas avoir à utiliser une expression régulière ou à définir une nouvelle fonction?
par exemple
This string ShouLD be ALL in title CASe
devrait devenir
This String Should Be All In Title Case
javascript
lodash
brandonscript
la source
la source
Réponses:
Cela peut être fait avec une petite modification de
startCase
:Afficher l'extrait de code
la source
_.startCase("aaa BBB ccc") === "Aaa BBB Ccc"
startCase
.:
, c'est un problème.Pour le texte non généré par l'utilisateur, cela gère plus de cas que la réponse acceptée
la source
avec la version lodash 4.
_.upperFirst(_.toLower(str))
la source
startCase
parce qu'il peut gérer plus de lettres que az, par exemple å, ä et ö.la source
upperFirst
place decapitalize
._.startCase
supprime la ponctuation. L'exemple_.startCase('first second etc...
renvoie la chaîneFirst Second Etc
startCase
convertit tout à un vide par exempleuser_name
seraUser Name
, et je voulais seulementUser_name
comme latext-transform: capitalize
propriété de CSSLes réponses à cette question sont mitigées. Certains recommandent d'utiliser
_.upperFirst
tandis que certains recommandent_.startCase
.Connaissez la différence entre eux.
i)
_.upperFirst
transformera la première lettre de votre chaîne, alors la chaîne peut être composée d'un seul mot ou de plusieurs mots mais la seule première lettre de votre chaîne est transformée en majuscule._.upperFirst('jon doe')
production:
Jon doe
consultez la documentation https://lodash.com/docs/4.17.10#upperFirst
ii)
_.startCase
transformera la première lettre de chaque mot à l'intérieur de votre chaîne._.startCase('jon doe')
production:
Jon Doe
https://lodash.com/docs/4.17.10#startCase
la source
_.lower()
.Voici un moyen d'utiliser UNIQUEMENT les méthodes lodash et aucune méthode intégrée:
la source
Vous pouvez également diviser la fonction de carte pour faire des mots séparés
la source
Sauf si je l'ai manqué, lodash n'a pas ses propres méthodes minuscules / majuscules.
la source
_.upperFirst
ne s'applique qu'au premier caractère (un synonyme de_.capitalize()
?)capitalize
etupperFirst
faire des choses différentes.Pas aussi concise que la réponse de @ 4castle, mais descriptive et pleine de lodash, néanmoins ...
la source
Voici une autre solution pour mon cas d'utilisation: "l'épine dorsale du diable"
Simplement:
L'utilisation de startCase supprimerait l'apostrophe, j'ai donc dû contourner cette limitation. Les autres solutions semblaient assez alambiquées. J'aime ça car c'est propre, facile à comprendre.
la source
Cela peut être fait avec seulement du lodash
la source
var words = ._words
Le code ci-dessous fonctionnera parfaitement:
la source
avec lodash 4, vous pouvez utiliser _.capitalize ()
_.capitalize('JOHN')
Il renvoie 'John'Voir https://lodash.com/docs/4.17.5#capitalize pour plus de détails
la source