es5中我们经常使用indexof()方法来判断一个字符串是否包含另外一个字符串中。
如果存在则返回匹配到的第一个索引值。如果没有则返回 -1。所以,判断一个字符串是否包含另外一个字符串中只需要判断是否为-1就行。-1代表不存在。
例如:
let str = 'Hello World!'; console.log(str.indexOf('H'));//0 str中"H"的出现的第一个索引为0 console.log(str.indexOf('o'));//4 str中"o"第一个出现的位置的索引为4 console.log(str.indexOf('a'));//-1 没找到,返回-1
虽然Es5中该方法经常使用,但是Es6提供了更加便捷的方法。
1. str.includes('');
有返回true,没有返回false。也不用为记住-1而发愁了!!
let str = 'Hello World!'; console.log(str.includes('H'));//true console.log(str.includes('a'));//false
2.startsWith()
判断该字符串是否为某个字符串的首位。有就是true,不是就是false。
let str = 'Hello World!'; console.log(str.startsWith('H'));//true console.log(str.startsWith('Hello'));//true console.log(str.startsWith('e'));//false
3.endsWith()
和startsWith()相反。判断是否为末尾。
let str = 'Hello World!'; console.log(str.endsWith('!'));//true console.log(str.endsWith('d!'));//true console.log(str.endsWith('e'));//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('el',3));//true endsWith()和上面两个不一样,它的第二个参数代表前几个。“Hel”,所以返回true