Lodash教程--字符串String
- 欢迎来到Lodash教程--字符串String
- (1) _.camelCase([string=''])
- (2) _.capitalize([string=''])
- (3)_.endsWith([string=''], [target], [position=string.length])
- (4) _.escape([string=''])
- (5)_.kebabCase([string=''])
- (6) _.lowerCase([string=''])
- (7)_.lowerFirst([string=''])
- (8)_.pad([string=''], [length=0], [chars=' '])
- (9)_.padEnd([string=''], [length=0], [chars=' '])
- (10)_.padStart([string=''], [length=0], [chars=' '])
- (11) _.parseInt(string, [radix=10])
- (12)_.repeat([string=''], [n=1])
- (13)_.replace([string=''], pattern, replacement)
- (14)_.snakeCase([string=''])
- (15)_.split([string=''], separator, [limit])
- (16)_.startCase([string=''])
- (17)_.startsWith([string=''], [target], [position=0])
- (18)_.toLower([string=''])
- (19)_.toUpper([string=''])
- (20)_.trim([string=''], [chars=whitespace])
- (21)_.trimEnd([string=''], [chars=whitespace])
- (21)_.trimStart([string=''], [chars=whitespace])
- (22)_.truncate([string=''], [options={}])
- (23)_.upperCase([string=''])
- (24)_.upperFirst([string=''])
- (25)_.words([string=''], [pattern])
- 注意
欢迎来到Lodash教程–字符串String
这是lodash系列的第一篇教程,建议学习之前,先复习上一篇《JavaScript教程–标准库系列(1)–String对象》。
由于在企业级开发中,我们需要满足快速开发和协作式开发的需求,因此基本上使用lodash而不是直接使用原生的JavaScript。
我们在学习的时候也是先看原生的JavaScript夯实基础,再用lodash巩固并更新知识点。
(1) _.camelCase([string=’’])
- [string=’’] (string): 要转换的字符串。
- 可以是先声明然后在参数位置写字符串名称,也可以直接写字符串。
- 转换规则实际是消除空格,将输入的字符串的第一个大写字母改成小写,若输入字符串有空格,将空格后的第一个字母改为大写。
- 返回的内容是参数的驼峰写法。
_.camelCase('Hello World'); // 'helloWorld'
var s1 = 'Hello World';
_.camelCase(s1); //'helloWorld'
_.camelCase('HelloWorld'); // 'helloWorld'
_.camelCase(‘HHi'); //'hHi'
_.camelCase('Just a tEst'); // 'justATEst'
(2) _.capitalize([string=’’])
[string=''](string)
输入的字符串- 返回结果是首字母大写,其余部分小写。
- 原字符串的空格保留。
_.capitalize('MONKEY'); // 'Monkey'
_.capitalize('peppa Pig'); // 'Peppa pig'
(3)_.endsWith([string=’’], [target], [position=string.length])
[string=''] (string)
:输入的字符串。[target] (string)
:指定字符。[position=string.length] (number)
:指定位置下标。- 返回的是一个布尔值(
boolean
),字符串在指定位置下标的字符是否是指定字符。如果是则返回true
,否则返回false
。 - 默认的指定位置下标为字符串结尾,因此最后一个参数可以省略。
- 指定字符也可以是空格。
_.endsWith('good night','t'); //true
_.endsWith('good night','',4); //true
(4) _.escape([string=’’])
- 转义string中的
"&", "<", ">", '"', "'", 和 "
"` 字符为HTML实体字符。
_.escape('peppa />" pig'); // "peppa />" pig"
_.escape('<html>'); // "<html>"
(5)_.kebabCase([string=’’])
- 转换字符串string为短横线命名规则。
- 将大写字母全部改为小写。
- 在每个小写变大写的字符前面加短横线。
- 如果有其他分隔符号,则将其他分隔符号改为短横线。
_.kebabCase('pePpaPig'); //"pe-ppa-pig"
_.kebabCase('__PePPA|Pig__'); // "pe-ppa-pig"
_.kebabCase('____PepPA-PiG'); //"pep-pa-pi-g"
(6) _.lowerCase([string=’’])
- 转换字符串string以空格分开单词,并转换为小写。
- 在小写变大写的字符前加空格。
- 删除字符串首尾的空格及符号。
- 字符串中间的符号用空格代替。
_.lowerCase('--PePpa-pIG'); //"pe ppa p ig"
(7)_.lowerFirst([string=’’])
- 转换字符串
string
的首字母为小写。 - 如果第一个字符不是字母(空格或其他字符)则不改变。
_.lowerFirst('Peppa Pig'); // "peppa Pig"
_.lowerFirst(' Peppa Pig'); // " peppa Pig"
_.lowerFirst('-Peppa Pig'); // "-peppa Pig"
(8)_.pad([string=’’], [length=0], [chars=’ '])
- 如果
string
字符串长度小于length
则从左侧和右侧填充字符。 如果没法平均分配,则截断超出的长度。 - 字符部分若为空,则以空格填充。
- 若字符串长度大于
length
,则返回字符串。
_.pad('abc', 9, '_-');//"_-_abc_-_"
_.pad('abc', 6, '_-');//"_abc_-"
_.pad('abc', 2, '_-');//"abc"
(9)_.padEnd([string=’’], [length=0], [chars=’ '])
- 如果
string
字符串长度小于length
则在右侧填充字符。 - 如果超出
length
长度则返回原字符串。 - 若无字符参数则以空格填充。
_.padEnd('hellokitty', 15);//"hellokitty "
_.padEnd('hellokitty', 3);//"hellokitty"
_.padEnd('hellokitty', 15,'^');//"hellokitty^^^^^"
(10)_.padStart([string=’’], [length=0], [chars=’ '])
- 如果
string
字符串长度小于length
则在左侧填充字符。 - 如果超出
length
长度则返回原字符串。 - 若无字符参数则以空格填充。
_.padStart('hellokitty', 6);//"hellokitty"
_.padStart('hellokitty', 15,'@');//"@@@@@hellokitty"
_.padStart('hellokitty', 15);//" hellokitty"
(11) _.parseInt(string, [radix=10])
string
字符串为指定基数的整数。 如果基数是undefined
或者0
,则radix
基数默认是10
,如果string
字符串是16进制
,则radix
基数为16
。- 如果
string
部分非数字组成的字符串,则返回NaN
。 - 若
radix
部分为负数,则返回NaN
。
_.parseInt('15');//15
_.parseInt('15',16);//21
_.parseInt('A',16);//10
_.parseInt('15',-2);//NaN
_.parseInt('@');//NaN
_.parseInt('hello');//NaN
_.parseInt('15',8);//13
_.parseInt('15',7);//12
(12)_.repeat([string=’’], [n=1])
- 重复
n
次给定字符串。 - 若省略参数
n
,返回原字符串。 - 若参数
n
为0
或负数,则返回空字符串。
_.repeat('*', 20);//"********************"
_.repeat('@', 0);//""
_.repeat('#', -1);//""
(13)_.replace([string=’’], pattern, replacement)
- 替换
string
字符串中匹配的pattern
为给定的replacement
。 - 若
pattern
在原字符串中不存在,则返回原字符串。 - 若省略
replacement
参数,则返回原字符串。 - 若同时省略
pattern
和replacement
参数,则返回原字符串。
_.replace('HelloKitty','Kitty','Siri');//"HelloSiri"
_.replace('HelloKitty','kitty','Siri');//"HelloKitty"
_.replace('HelloKitty','Kitty');//"HelloKitty"
_.replace('HelloKitty')//"HelloKitty"
(14)_.snakeCase([string=’’])
- 转换字符串
string
为snake case
. snake case
即所有字母小写,单词用下划线隔开。
_.snakeCase('Peppa Pig');//"peppa_pig"
(15)_.split([string=’’], separator, [limit])
- 根据
separator
拆分字符串string
。 [limit] (number):
限制返回结果的数量。- 若
separator
在原字符串中不存在,则返回原字符串。 - 若省略
separator
,则返回原字符串。
_.split('a|b|c', '-', 2);//["a|b|c"]
_.split('a-b-c', 2);//["a-b-c"]
_.split('a-b-c', '', 2);//["a", "-"]
(16)_.startCase([string=’’])
- 转换
string
字符串为start case
. start case
:每个单词首字母改为大写,单词间用空格隔开,其余不变。
_.startCase('helloKitty');//"Hello Kitty"
_.startCase('-he-lloKitty');//"He Llo Kitty"
_.startCase('_HELLO_KITTY');//"HELLO KITTY"
(17)_.startsWith([string=’’], [target], [position=0])
- 检查字符串
string
是否以target
开头。 - 若省略
position
,则默认为第一个字符。 - 若
position
为负数,则自动转为0
。 - 若省略
target
,则返回false
。
_.startsWith('peppa', 'e',1);//true
_.startsWith('peppa', 'p',-1);//true
_.startsWith('peppa', 'a',-1);//false
_.startsWith('peppa', -6);//false
(18)_.toLower([string=’’])
- 转换整个string字符串的字符为小写
_.toLower('HELLOKITTY')//"hellokitty"
_.toLower('HELLO KITTY')//"hello kitty"
(19)_.toUpper([string=’’])
- 转换整个
string
字符串的字符为大写。
_.toUpper('peppa-pig');//"PEPPA-PIG"
(20)_.trim([string=’’], [chars=whitespace])
- 从
string
字符串中移除前面和后面的空格或指定的字符。 - 这里面指定的字符是指每一个字符,比如传入的字符为
'-|'
,那么不管这两个字符是否相连,都移除。 - 默认情况下,若不传入字符参数,则若传入字符参数,并且没有空格,则不删除原字符串的空格。
_.trim('-_|peppa-_-', '_|-');//"peppa"
_.trim('-_|abc-_ -', '_|-');//"abc-_ "
(21)_.trimEnd([string=’’], [chars=whitespace])
- 和
_.trim([string=''], [chars=whitespace])
类似,从string字符串中移除后面的空格
或指定的字符
。
_.trimEnd(' peppa ');//" peppa"
_.trimEnd('-_-hello-||||||_-', '|_-');//"-_-hello"
(21)_.trimStart([string=’’], [chars=whitespace])
- 和
_.trim([string=''], [chars=whitespace])
类似,从string字符串中移除前面的空格
或指定的字符
。
_.trimStart(' peppa ');//"peppa "
_.trimStart('-_-hello-||||||_-', '|_-');//"hello-||||||_-"
(22)_.truncate([string=’’], [options={}])
- 截断
string
字符串,如果字符串超出了限定的最大值。 被截断的字符串后面会以omission
代替,omission
默认是"..."
。 - 参数
[string=''] (string)
: 要截断的字符串。
[options={}] (Object)
: 选项对象。
[options.length=30] (number)
: 允许的最大长度。
[options.omission='...'] (string)
: 超出后的代替字符。
[options.separator] (RegExp|string)
: 截断点。 - 默认为长度为
30
,但如果超过了,最后三个用…代替,所以只保留原字符串的27
个字符。
_.truncate('Hello Kitty,this is Peppa Pig and Siri',{
'length':20,
'omission':'@@@'});
//"Hello Kitty,this @@@"
_.truncate('Hello Kitty,this is Peppa Pig and Siri',{
'separator':/,/,
'omission':'@@@'});
//"Hello Kitty@@@"
(23)_.upperCase([string=’’])
- 转换字符串
string
为 空格 分隔的大写单词。 - 具体规则是在小写转大写前面加空格,特殊字符改为空格。
- 所有的小写字母改为大写。
_.upperCase('helLoKitty');//"HEL LO KITTY"
_.upperCase('helLo-Kitty');//"HEL LO KITTY"
_.upperCase('h-e-lLo-Kitty');//"H E L LO KITTY"
(24)_.upperFirst([string=’’])
- 转换字符串
string
的首字母为大写,其余大小写不变。
_.upperFirst('hello kitty');//"Hello kitty"
(25)_.words([string=’’], [pattern])
- 拆分字符串
string
中的词为数组 。 - 拆分依据
pattern
参数。 - 如果省略了
pattern
参数,则依据字符串中的符号、空格拆分。
_.words('hello|Kitty|siri');//(3) ["hello", "Kitty", "siri"]
_.words('hello|Kitty|siri',/[^, ]/g);
//(16) ["h", "e", "l", "l", "o", "|", "K", "i", "t", "t", "y", "|", "s", "i", "r", "i"]
注意
本文中省略了_.template([string=''], [options={}])
,因为我没看懂?。
鹅且这个方法比较长,等下次需要弄懂这个方法了单独加一篇讲template
。
_.unescape([string=''])
方法同上。
Lodash系列–String部分完结!