字符串中的子串识别
子javascript首次被使用以来,开发者们就开始使用indexOf()方法来在一段字符串中检测另一段字符串,在ES6中,提供以下三种类似的方法可以达到相同效果:
- includes()方法,如果在字符串中检测到指定文本则返回true,否则返回false
- startsWith()方法,如果在字符串中的起始部分检测到指定文本则返回true,否则返回false
- endsWith()方法,如果在字符串的结束部分检测到指定文本则返回true,否则返回false。
以上的3个方法都可以接受两个参数:第一个参数指定要搜索的文本;第二个参数是可选的,指定一个开始搜索的位置的索引值。如果指定了第二个参数,则includes()方法和startsWith()方法会从这个索引值的位置开始匹配,endsWith()方法则从这个索引值减去欲搜索文本长度的位置开始正向匹配,对字符进行逐个比较;如果不指定第二个参数,includes()方法和startsWith()方法会从字符串起始处开始匹配,endsWith()方法从字符串末尾处开始匹配。如下:
let msg = "Hello world!";
console.log(msg.startsWith("Hello"));//true
console.log(msg.endsWith("!"));//true
console.log(msg.includes("o"));//true
console.log(msg.startsWith("o"));//flase
console.log(msg.endsWith("world