欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ES6特性:字符串新增方法

程序员文章站 2022-03-08 22:49:52
...

字符串识别

ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法。ES6新增三种方法

(1)includes():返回布尔值,判断是否找到参数字符串

(2)startsWith():返回布尔值,判断参数字符串是否在原字符串的头部

(3)endsWith():返回布尔值,判断参数字符串是否在原字符串的尾部

三个方法都可以两个参数 -- 需要查找的字符串,开始搜索的位置索引

let str="abc,def,gh";
str.includes("def");    // true
str.startsWith("abc");    // true
str.endsWith("abc");    // false
str.startsWith("def",4);    // true

字符串重复

repeat()方法返回一个新字符串,表示将原字符串重复n次

'a'.repeat(3)    // 'aaa'
'a'.repeat(0)    // ''

参数是小数,向下取整

'x'.repeat(2.9)    // 'xx'

如果参数是负数或者Infinity,会报错。

'aa'.repeat(Infinity)    // 报错
'aa'.repeat(-1)    // 报错

但是如果参数是0到-1之间的小数,会进行取整运算。0到-1之间的小数,取整后等于-0

'aa'.repeat(-0.5)    // ''

参数NaN等同于0

'xx'.repeat(NaN)    // ''

如果参数是字符串,会先转换成数字

'xx'.repeat('aa')    // ''
'xx'.repeat('3')    // 'xxxxxx'

字符串补全

padStart:返回新的字符串,表示用参数字符串从头部补全原字符串。

padEnd:返回新的字符串,表示用参数字符串从头部补全原字符串。

接受两个参数,第一个参数是生成字符串的长度,第二个是用来补全的字符串。没有指定第二个参数,默认用空格

'aa'.padStart(5,'bc')    // 'bcbaa'
'aa'.endStart(5,'bc')    // 'aabcb'

如果指定的长度大于或者等于原字符串的长度,则返回原字符串。

'xxx'.padStart(2, 'ab')    // 'xxx'

如果原字符串加上补全字符串长度大于指定长度,则截去超出位数的补全字符串

'abc'.padStart(10, '0123456789')    // '0123456abc'