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
网友评论