JS从零开始(15)

159 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情

字符串的查找(续)

search()

这个方法其实和indexOf()有点类似。只不过这个的区别在于参数里既可以是字符串/字符,也可以是正则表达式,但一般都是正则表达式,其返回内容也同indexOf()。 如:

var str = 'abcdefghyijk';
console.log(str.search('yi')); // 8
console.log(str.search(/yi/i)); //8

注意:search方法返回的是字符y的索引

includes()

这个方法的作用是检索字符串中是否包含指定的内容,故而通常与布尔值连用,例如:

var str = 'abcdefghyijk';
console.log(str.includes('de')); // true
console.log(str.includes('msr')); //false
console.log(str.includes('de', 4)); //false

如代码所示,这个方法同样也可以指定第二个参数,意思是从指定位置开始检索,比如说这句代码str.includes('de', 4),意思就是从str的下标为4的地方开始检索是否有de存在,我们知道de中d的下标为3,但是却从下标4开始检索,那么自然检索不出de这个字符串,返回false.

startstWith()

同样的,这个方法是判断一个字符串是否以指定内容开头,也通常与布尔值连用

var str = 'abcdefghyijk';
console.log(str.startsWith('a')); // true
console.log(str.startsWith('b')); //false
console.log(str.startsWith('d', 4)); //false

我们也能看到startstWith()方法也能够指定两个参数,用法同上。

endsWith()

判断字符串是否以指定内容结尾

var str = 'abcdefghyijk';
console.log(str.endsWith('k')); // true
console.log(str.endsWith('j')); //false
console.log(str.endsWith('d', 4)); //true

有人会发现,为什么这句代码str.endsWith('d', 4)的打印结果是ture而不是false,不应该是以e结束吗? 其实不然,虽然表面上看起来startsWith和endsWith用法好像相同,但是这里我们要注意这两个的position含义是不同的,也就是说指定的第二个参数意义不同,可以理解为startsWith的position含义是下标,而endsWith的position含义是字符串长度,这个一定要牢记!!