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

ES6(6)—— 新增字符串方法

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

一、判定一个字符串是否包含在另一个字符串中的方法。

之前,我们JavaScript只有一种方法indexOf()(或者lastIndexOf())判定一个字符串是否包含在另一个字符串中,ES6又提供了三种方法:includes()、startsWith()、endsWith()。这三种方法都支持第二参数,表示从第几位开始搜索。

1、indexOf()方法和lastIndexOf()方法。

这两种方法都接受第二参数,表示从字符串的哪个位置开始搜索。返回值是子字符串第一次出现的位置,如果没有找到,则返回-1。不论是从前向后还是从后向前,都返回的是子字符串第一次出现的第一个字符的位置。

var str = 'bbgygsfdsbvgzx';
console.log(str.indexOf('gs'));         //从前向后搜索,寻找子字符串gs,返回值是4
console.log(str.lastIndexOf('gs'));     //从后向前搜索,寻找子字符串gs,返回值是4

console.log(str.indexOf('gs',2));       //从位置2开始,从前向后搜索子字符串gs,实际搜索区间是gygsfdsbvgzx,返回值是4
console.log(str.lastIndexOf('gs',2));   //从位置2开始,从后向前搜索子字符串gs,实际搜索区间是bb,返回值是-1

2、includes()方法

这个方法也接受第二参数,意思就是从第几个位置开始搜索,和indexOf()第二参数一样。返回值是布尔值,表示是否找到了参数字符串。

var str = 'hello world';
console.log(str.includes('ll'));    //true
console.log(str.includes('ll',4));  //false

3、startsWith()方法

这个方法也接受第二参数,和前面的的第二参数完全一样。返回值是布尔值,表示参数字符串是否在源字符串的头部。

var str = 'hello world';
console.log(str.startsWith('hello'));     //true
console.log(str.startsWith('llo',2));    //true
console.log(str.startsWith('llo'));     //false

4、ebdsWith()方法

这个方法也接受第二参数,不过它表示的是第n个位置之前的字符串。返回值是布尔值,表示的是参数字符串是否在源字符串的尾部。

var str = 'hello world';
console.log(str.endsWith('world'));     //true
console.log(str.endsWith('llo',5));    //true
console.log(str.endsWith('llo'));     //false

二、重复字符串

1、repeat()方法

repeat()方法表示将原字符串重复n次。返回值是一个新的字符串。要注意的是:①如果参数是小数,会被取整。②如果参数是负数或者Infinity,会报错。③0到1之间的小数被视为0,NaN也被视为0。

var str = 'hello';
console.log(str.repeat(3));       //hellohellohello
console.log(str.repeat(5.7));     //hellohellohellohellohello
console.log(str.repeat(0.8));     // ' '
console.log(str.repeat(-0.5));    // ' '
console.log(str.repeat(NaN));     // ' '

三、字符串补全长度的方法。

ES2017引入了字符串补全长度功能。如果某个字符串不够指定长度,会在头部或尾部补全。

1、padStart()方法

用于头部补全。接受两个参数,第一个参数是字符串最小长度,第二个参数是用来补全的字符串。返回值是补全后的字符串。如果字符串的长度大于等于指定长度,则返回原字符串。如果第二个参数省略,则会用空格来补全。用图是:①数值补全指定的位数。②提示字符串格式。

'x'.padStart(5,'yz');           //yzyzx
'x'.padStart(4,'yz');           //yzyx
'1'.padStart(10,'0');           //0000000001    用来为数值补全指定的位数
'12'.padStart(10,'YYYY-MM-DD');  //"YYYY-MM-12"  用来提示字符串格式

2、padEnd()方法

用于尾部补全。其他与padStart()用法一样。用途与padStart()有区别。我们知道padStart()的用途就好。

'x'.padEnd(5,'ab');       //xabab
'x'.padEnd(4,'ab');       //xaba