Я просматриваю документы lodash и другие вопросы о переполнении стека - хотя есть несколько собственных способов выполнения этой задачи JavaScript , есть ли способ преобразовать строку в регистр заголовка, используя чисто функции lodash (или, по крайней мере, существующие прототипные функции) чтобы мне не пришлось использовать регулярное выражение или определять новую функцию?
например
This string ShouLD be ALL in title CASe
должен стать
This String Should Be All In Title Case
javascript
lodash
брендонскрипт
источник
источник
Ответы:
Это можно сделать с помощью небольшой модификации
startCase
:Показать фрагмент кода
источник
_.startCase("aaa BBB ccc") === "Aaa BBB Ccc"
startCase
.:
, это проблема.Для текста, не созданного пользователем, это обрабатывает больше случаев, чем принятый ответ.
источник
с lodash версии 4.
_.upperFirst(_.toLower(str))
источник
startCase
потому, что он может обрабатывать больше букв, чем az, например å, ä и ö.источник
upperFirst
вместоcapitalize
._.startCase
убирает пунктуацию. Пример_.startCase('first second etc...
возвращает строкуFirst Second Etc
startCase
Преобразует все к заготовке, например ,user_name
будетUser Name
, и я хотел толькоUser_name
какtext-transform: capitalize
свойство CSSНа этот вопрос есть неоднозначные ответы. Некоторые рекомендуют использовать,
_.upperFirst
а некоторые рекомендуют_.startCase
.Знайте разницу между ними.
i)
_.upperFirst
преобразует первую букву вашей строки, тогда строка может состоять из одного слова или нескольких слов, но единственная первая буква вашей строки преобразуется в верхний регистр._.upperFirst('jon doe')
вывод:
Jon doe
проверьте документацию https://lodash.com/docs/4.17.10#upperFirst
ii)
_.startCase
преобразует первую букву каждого слова внутри вашей строки._.startCase('jon doe')
вывод:
Jon Doe
https://lodash.com/docs/4.17.10#startCase
источник
_.lower()
.Вот способ использования ТОЛЬКО методов lodash и без встроенных методов:
источник
Вы также можете разделить функцию карты на отдельные слова
источник
Если я не пропустил, lodash не имеет собственных методов нижнего / верхнего регистра.
источник
_.upperFirst
относится только к первому символу (синоним_.capitalize()
?)capitalize
иupperFirst
делать разные вещи.Не такой краткий, как ответ @ 4castle, но, тем не менее, описательный и полный lodash ...
источник
Вот еще одно решение для моего варианта использования: "позвоночник дьявола"
Просто:
Использование startCase удалит апостроф, поэтому мне пришлось обойти это ограничение. Остальные решения казались довольно запутанными. Мне он нравится, потому что он чистый, понятный.
источник
Это можно сделать только с помощью lodash
источник
var words = ._words
Код ниже будет работать отлично:
источник
с lodash 4 вы можете использовать _.capitalize ()
_.capitalize('JOHN')
Возвращает "Джон"См https://lodash.com/docs/4.17.5#capitalize подробности
источник