我正在浏览lodash文档和其他Stack Overflow问题-虽然有几种本机JavaScript方法可以完成此任务,但是有一种方法可以使用纯 lodash函数(或至少现有的原型函数)将字符串转换为标题大小写这样我就不必使用正则表达式或定义新函数了?
例如
This string ShouLD be ALL in title CASe
应该成为
This String Should Be All In Title Case
我正在浏览lodash文档和其他Stack Overflow问题-虽然有几种本机JavaScript方法可以完成此任务,但是有一种方法可以使用纯 lodash函数(或至少现有的原型函数)将字符串转换为标题大小写这样我就不必使用正则表达式或定义新函数了?
例如
This string ShouLD be ALL in title CASe
应该成为
This String Should Be All In Title Case
Answers:
_.startCase("aaa BBB ccc") === "Aaa BBB Ccc"
startCase
。
:
,这是一个问题。
_.startCase(_.camelCase(str))
对于非用户生成的文本,这比可接受的答案处理更多的情况
> 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'
使用lodash版本4。
_.upperFirst(_.toLower(str))
startCase
它更好,因为它可以处理比z更多的字母,例如å,ä和ö。
'This string ShouLD be ALL in title CASe'
.split(' ')
.map(_.capitalize)
.join(' ');
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
_.lower()
。
var s = 'This string ShouLD be ALL in title CASe';
_.map(s.split(' '), (w) => _.capitalize(w.toLowerCase())).join(' ')
除非我没有错过它,否则lodash没有自己的小写/大写方法。
_.upperFirst
仅适用于第一个字符(_.capitalize()
?的同义词)
capitalize
并upperFirst
做不同的事情。
虽然不像@ 4castle的回答那么简洁,但是描述性且充满点点滴滴……
var basicTitleCase = _
.chain('This string ShouLD be ALL in title CASe')
.toLower()
.words()
.map(_.capitalize)
.join(' ')
.value()
console.log('Result:', basicTitleCase)
console.log('Exact Match:' , basicTitleCase === '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>
这只能用lodash来完成
properCase = string =>
words(string)
.map(capitalize)
.join(' ');
const proper = properCase('make this sentence propercase');
console.log(proper);
//would return 'Make This Sentence Propercase'
var words = ._words
下面的代码将完美地工作:
var str = "TITLECASE";
_.startCase(str.toLowerCase());
在lodash 4中,您可以使用_.capitalize()
_.capitalize('JOHN')
它返回“ John”