1.判断字符串是否包含在另一个字符串中
可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。
传统上是indexOf()
新增
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部
第一个参数,表示要寻找的字符串
let s = 'Hello world!';
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
第二个参数,表示开始搜索的位置。
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false
注意:使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。
2.原字符串重复
repeat()方法返回一个新字符串,表示将原字符串重复n次
注意: 1.参数如果是小数,会被取整。
2.如果repeat的参数是负数或者Infinity,会报错。但是,如果参数是 0 到-1 之间的小数,则等同于0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于-0,repeat视同为 0。 参数NaN等同于 0。
3.如果repeat的参数是字符串,则会先转换成数字。
3.字符串补全
padStart()和padEnd()接受两个参数
第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。少补多删。
如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。
'mmm'.padStart(5, 'ab') // 'abmmm'
'mmm'.padEnd(2, 'ab') // 'mmm'
4.消除字符串空格
trim()消除字符串前后的空格
trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。它们返回的都是新字符串,不会修改原始字符串。
const x = ' abc ';
x.trim() // "abc"
x.trimStart() // "abc "
x.trimEnd() // " abc"
浏览器还部署了额外的两个方法,trimLeft()是trimStart()的别名,trimRight()是trimEnd()的别名。
5. matchAll()方法
返回一个正则表达式在当前字符串的所有匹配
6.字符串替换
字符串的实例方法replace()只能替换第一个匹配。 replaceAll()方法,可以一次性替换所有匹配。
'aabbccbb'.replaceAll('b', '_')
// 'aa__cc__'
7.返回参数指定位置的字符
at()方法接受一个整数作为参数,返回参数指定位置的字符,允许负索引(即倒数的位置)。
const str = 'hello';
str.at(1) // "e"
str.at(-1) // "o"
如果参数位置超出了字符串范围,at()返回undefined。