步遥——字符串新增方法

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容