indexOf()和lastIndexOf是从字符串中查找子字符串。它们都从一个字符串中搜索给定的字符串,然后返给子字符串的位置
(若没有找到该子字符串则返回-1)
区别:indexOf()方法从字符串开头向后搜索子字符串,lastIndexOf()从字符串尾向前开始搜索子字符串
这里可能有些人会和我一样犯一些迷糊
如这个题:
var stringVal = "hrello world"
alert(stringVal.indexOf("r"));
alert(stringVal.lastIndexOf("r"));
运行结果显示是 1和9
刚开始我以为结果应该是 1 和10,其实这里的lastIndexOf()只是从后面开始搜索而已,它的索引位置还是从0开始的,所以不要和我一样误解了。
这两个方法都可以接收可选的第二个参数,表示从字符串中的哪个位置开始搜索。indexOf()会从该参数指定的位置向后搜索,忽略该位置之前的所有字符;lastIndexOf()则会从指定的位置向前搜索,忽略该位置之后的所有字符
如:
var stringValue = "hello world";
alert(stringValue.indexof("o",6));
alert(stringValue.lastIndexOf("o",6));
第一个结果是7,第二个结果是4