145 votes

Lodash title case (première lettre majuscule de chaque mot)

Je suis à la recherche par le biais de la lodash docs et autres Débordement de Pile questions - alors qu'il en existe plusieurs JavaScript natif façons d'accomplir cette tâche, est-il une manière que je peux convertir une chaîne en majuscules à l'aide purement lodash fonctions (ou au moins existant prototypes des fonctions), de sorte que je n'ai pas à utiliser une expression régulière ou de 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

271voto

4castle Points 20341

Cela peut être fait avec une petite modification de startCase :

 _.startCase(_.toLower(str));
 

 console.log(_.startCase(_.toLower("This string ShouLD be ALL in title CASe"))); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.13.1/lodash.min.js"></script> 

56voto

aristidesfl Points 161
 _.startCase(_.camelCase(str))
 

Pour le texte non généré par l'utilisateur, cela traite plus de cas que la réponse acceptée

 > startCase(camelCase('myString'))
'My String'
> startCase(camelCase('my_string'))
'My String'
> startCase(camelCase('MY_STRING'))
'My String'
> startCase(camelCase('my string'))
'My String'
> startCase(camelCase('My string'))
'My String'
 

38voto

James Nguyen Points 171

avec lodash version 4.

_.upperFirst(_.toLower(str))

25voto

CD.. Points 23701
'This string ShouLD be ALL in title CASe'
  .split(' ')
  .map(_.capitalize)
  .join(' ');

3voto

Brandon Points 7202

Voici une méthode utilisant UNIQUEMENT les méthodes lodash et aucune méthode intégrée:

 _.reduce(_.map(_.split("Hello everyOne IN the WOrld", " "), _.capitalize), (a, b) => a + " " + b)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X