ES6中新增的字符串方法 includes startsWith endsWith repeat padStart padEnd trimStart trimEnd ...
程序员文章站
2022-03-08 20:49:22
...
1.includes、startsWidth、endsWith
- includes():返回布尔值,表示是否找到了参数字符串。
- startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
let s='Hello world!';
s.includes('llo'); //true
s.startsWith('Hello'); //true
s.endsWith('world!'); //true
这三个方法还有第二个参数,表示开始搜索的位置,但是定义不太一样,endsWith的第二个参数,是针对前n个字符,而其他两个方法是针对第n个位置到字符串末尾。
let s='Hello world!';
s.startsWith('H',1); //false
s.startsWith('e',1); //true
s.endsWith('wor',9); //true
s.endsWith('wor',8); //false
s.includes('orl',7); //true
s.includes('orl',8); //false
2.repeat():返回一个新字符串,表示将原字符串重复n次
's'.repeat(3) //'sss'
'hello'.repeat(2) //'hellohello'
'na'.repeat(0) //''
'na'.repeat() //''
let str='fs';
str.repeat(3) //'fsfsfs'
参数如果是小数,会被取整
'na'.repeat(2.9) //'nana'
参数如果是负数或者infinity,会报错
'na'.repeat(Infinity) //RangeError
'na'.repeat(-1) //RangeError
参数是0到-1之间的小数,则等同于0,参数NaN也等同于0,如果是字符串,则先转换成数字
'na'.repeat(-0.9) //''
'na'.repeat(NaN) //''
'na'.repeat('na') //''
'na'.repeat('3') //'nanana'
3.padStart():头部补全、padEnd():尾部补全
'x'.padStart(5,'ab') //'ababx'
'x'.padStart(4,'ab') //'abax'
'x'.padEnd(5,'ab') //'xabab'
'x'.padEnd(4,'ab') //'xaba'
如果原字符串长度等于或大于最长长度,则字符串补全不生效,返回原字符串
'xxx'.padStart(2,'ab') //'xxx'
'xxx'.padEnd(2,'ab') //'xxx'
如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。
'abc'.padStart(10,'0123456789') //0123456abc
如果省略第二个参数,默认使用空格补全长度
'x'.padStart(4) //' x'
'x'.padEnd(4) //'x '
padStart() 的常见用途是为数值补全指定位数,下面代码生成10位的数值字符串:
'1'.padStart(10,'0') //'0000000001'
'12'.padStart(10,'0') //'0000000012'
'123456'.padStart(10,'0') //'0000123456'
另一个用途是提示字符串格式:
'12'.padStart(10,'YYYY-MM-DD') //'YYYY-MM-12'
'09-12'.padStart(10,'YYYY-MM-DD') //'YYYY-09-12'
4.trimStart()、trimEnd(),行为与trim一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格,都是返回新字符串,不会修改原始字符串。
const s = ' abc ';
s.trim() //'abc'
s.trimStart() //'abc '
s.trimEnd() //' abc'