字符串识别
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'