我的数据都是大写的。我想把每个单词的第一个字母大写,其余的字母小写,但我似乎做不到。
我用lodash试过了
{
Header: 'Security Name',
accessor: 'securityName',
minWidth: 70, // minWidth is only used as a limit for resizing
width: 260, // width is used for both the flex-basis and flex-grow
maxWidth: 300,
Cell: e => <div>{_.lowerCase.firstUpper(e.value)} </div>,
},
但这行不通。有什么办法吗?
2条答案
按热度按时间rdlzhqv91#
replace()方法有两个参数:正则表达式(regex)匹配每个单词的首字母,函数返回匹配字母的大写版本。regex /(^|\s)[a-z]/g匹配每个单词的第一个字母,无论它出现在字符串的开头(^)还是空白字符(\s)之后。正则表达式末尾的g标志使匹配成为全局匹配,以便替换所有出现的模式。
pwuypxnk2#
代码不起作用的原因是因为方法不是firstUpper,而是upperFirst。此外,您需要编写
_.lowerCase(_.upperFirst(e.value))
而不是_.lowerCase.upperFirst(e.value)
,因为JavaScript方法需要括号来启动。但是,更好的解决方案将是直接使用capitalized,这也是由lodash提供的。