Przeglądam dokumentację lodash i inne pytania dotyczące przepełnienia stosu - chociaż istnieje kilka natywnych sposobów wykonywania tego zadania w języku JavaScript , czy istnieje sposób, w jaki mogę przekonwertować ciąg znaków na przypadek tytułu, używając funkcji czysto lodash (lub przynajmniej istniejących funkcji prototypowych) tak, że nie muszę używać wyrażenia regularnego ani definiować nowej funkcji?
na przykład
This string ShouLD be ALL in title CASe
powinno stać się
This String Should Be All In Title Case
javascript
lodash
brandonscript
źródło
źródło
Odpowiedzi:
Można to zrobić za pomocą niewielkiej modyfikacji
startCase
:Pokaż fragment kodu
źródło
_.startCase("aaa BBB ccc") === "Aaa BBB Ccc"
startCase
.:
to jest problem.W przypadku tekstu nie wygenerowanego przez użytkownika obsługuje to więcej przypadków niż zaakceptowana odpowiedź
źródło
z lodash w wersji 4.
_.upperFirst(_.toLower(str))
źródło
startCase
dlatego, że może obsłużyć więcej liter niż az, na przykład å, ä i ö.źródło
upperFirst
zamiastcapitalize
._.startCase
usuwa znaki interpunkcyjne. Przykład_.startCase('first second etc...
zwraca ciągFirst Second Etc
startCase
przekształca wszystko, aby wykroju na przykładuser_name
będzieUser Name
, a ja tylko chciałemUser_name
jaktext-transform: capitalize
właściwości CSSOdpowiedzi na to pytanie są różne. Niektórzy zalecają używanie,
_.upperFirst
a inni polecają_.startCase
.Poznaj różnicę między nimi.
i)
_.upperFirst
przekształci pierwszą literę ciągu, a następnie łańcuch może składać się z jednego słowa lub wielu słów, ale jedyna pierwsza litera ciągu zostanie przekształcona na wielką._.upperFirst('jon doe')
wynik:
Jon doe
sprawdź dokumentację https://lodash.com/docs/4.17.10#upperFirst
ii)
_.startCase
przekształci pierwszą literę każdego słowa w twoim ciągu._.startCase('jon doe')
wynik:
Jon Doe
https://lodash.com/docs/4.17.10#startCase
źródło
_.lower()
.Oto sposób korzystania TYLKO z metod lodash i bez wbudowanych metod:
źródło
Możesz również podzielić funkcję mapy, aby tworzyć oddzielne słowa
źródło
O ile tego nie przegapiłem, lodash nie ma własnych metod małych / dużych liter.
źródło
_.upperFirst
dotyczy tylko pierwszego znaku (synonim_.capitalize()
?)capitalize
iupperFirst
rób różne rzeczy.Nie tak zwięzły jak odpowiedź @ 4castle, ale opisowy i pełen lodashu ...
źródło
Oto inne rozwiązanie dla mojego przypadku użycia: „kręgosłup diabła”
Po prostu:
Użycie startCase spowodowałoby usunięcie apostrofu, więc musiałem obejść to ograniczenie. Inne rozwiązania wydawały się dość zawiłe. Podoba mi się, ponieważ jest czysty, łatwy do zrozumienia.
źródło
Można to zrobić tylko z lodash
źródło
var words = ._words
Poniższy kod będzie działał idealnie:
źródło
z lodash 4 możesz użyć _.capitalize ()
_.capitalize('JOHN')
Zwraca „John”Szczegółowe informacje można znaleźć pod adresem https://lodash.com/docs/4.17.5#capitalize
źródło