步遥——字符串新增方法

2020-12-24  本文已影响0人  你还想好吗

1:判断字符串是否在另一个字符串中,原来只有indexOf
indexOf:返回第一次匹配到字符串的位置,传第二参数(位置),会从该位置之后查找,找不到返回-1
es6新增了3种方法:
includes:返回布尔值,表示是否找到了参数字符串;传第二参数(位置),会从该位置之后查找

'statswith'.includes('h')//true
'statswith'.includes('h',9)//false

startsWith:返回布尔值,表示参数字符串是否在原字符串的头部;传第二参数(位置),会从该位置之后查找

'statswith'.startsWith('h')//false

endsWith:返回布尔值,表示参数字符串是否在原字符串的尾部;传第二参数(位置),会从该位置之后查找

'endwith'.endsWith('ith') // true

2:将原字符串重复n次
n为小数时,则取Math.floor之后重复
n为负数或Infinity,则会报错
n为NaN,则视同为0
n为字符串,则转为数字再重复
repeat

'statswith'.repeat(5)//"statswithstatswithstatswithstatswithstatswith"
'statswith'.repeat(0)//""

3:补全字符串
3.1:当字符串长度不够指定长度,会在头部或尾部补全
如果原字符串的长度,大于或等于最大长度,则字符串补全不生效,返回原字符串
3.2:如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串
3.3:如果省略第二个参数,默认使用空格补全长度
3.4:padStart常见用途是为数值补全指定位数,另一个是提示字符串格式
padStart:头部补全
padEnd:尾部补全

'x'.padEnd(5,'n')//xnnnn" 字符串长度为5 ,不够则用‘n’补全
'test'.padStart(4,'f')//"test"  字符串长度够,则不用补全
'test'.padStart(6,'f')//"fftest" 
'test'.padEnd('6','ejhtker')//"testej" ,超出总长,则截去'ejhtker'中超出的位数
'test'.padEnd(6)//"test  "
'09-12'.padStart(10,'YYYY-MM-DD')//"YYYY-09-12"提示格式

4:消除空格:
trimStart:消除字符串头部的空格,保留尾部的空格,返回新字符串,不修改原始字符串
trimEnd:消除尾部的空格,保留头部的空格,返回新字符串,不修改原始字符串
以上对字符串头部或尾部的tab键,换行符等不可见的空白符号也有效

' sds'.trimStart()//'sds'
'sfh  '.trimEnd()//'sfh'

浏览器中部署了两个方法:trimLeft是trimStart的别名,trimRight是trimEnd的别名

5:匹配字符串中满足正则表达式的匹配项
matchAll

[...'testesbes'.matchAll('es')] // [Array(1), Array(1), Array(1)] 需要...才能看到匹配项

6:替换字符串,不改变原字符串,返回一个新的字符串
原始的replace只能替换第一个匹配

'sgasg'.replace('g','_')//"s_asg"

replaceAll可以一次性替换所有的匹配
该函数的第二个参数可以是一个替换的字符串,也可以是一个函数,该函数的返回结果会替换匹配到的字符

'sgasg'.replaceAll('g','_')//"s_as_"

7:根据正则查找字符串
search: //根据正则查找原字符串中匹配的字符串的位置
indexOf://根据字符串查找子字符串在原字符串中的位置

let string = 'sdhjkHSFJDH'
string.search(/[A-Z]/g)//5
string.indexOf('H')//5
上一篇 下一篇

猜你喜欢

热点阅读