当有人问到用来确定一个字符串是否包含在另一个字符串中有哪些方法时,我们会不假思索回答道:indexOf方法。其实,ES6 又提供了三种新方法includes()、startsWith()、endsWith()
,也是比较好用的。
indexOf方法在这里就不多说了,大家都比较熟悉,意思就是:返回给定元素在数组中第一次出现的位置,返回结果是匹配开始的位置,如果没有出现则返回-1。
下面详细介绍ES6新增的这三种方法:
①includes()
:返回布尔值,表示是否找到了参数字符串。
如下所示:
let str = 'Hello world!'; let res1 = str.includes('Hello'); let res2 = str.includes('hi'); console.log(res1); // true console.log(res2); // false
结果:
②startsWith()
:返回布尔值,表示参数字符串是否在原字符串的头部。
如下所示:
let str = 'Hello world!'; let res1 = str.startsWith('Hello'); let res2 = str.startsWith('world'); console.log(res1); // true console.log(res2); // false
结果:
③endsWith()
:返回布尔值,表示参数字符串是否在原字符串的尾部。
如下所示:
let str = 'Hello world!'; let res1 = str.endsWith('!'); let res2 = str.endsWith('d'); console.log(res1); // true console.log(res2); // false
结果:
这三个方法都支持第二个参数,表示看是搜索的位置。
let str = 'Hello World!' console.log(str.includes('World', 5)) // true 从索引5(包含索引5)开始搜索 console.log(str.includes('World', 7)) // false console.log(str.startsWith('lo', 3)) // true console.log(str.startsWith('H', 3)) // false console.log(str.endsWith('Hel', 3)) // true console.log(str.endsWith('d', 3)) // false