首先:
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
注意是首次出现的位置,这个可以用来找一行字符串中是否含有某个字符或者某个字符串;相应的语法如:
查找输入的str中是否含有“qiandao”或者“easy”这个字符串:
if(str1.indexOf("qiandao")!=-1||str1.indexOf("easy")!=-1){
}
具体用法:
stringObject.indexOf(searchvalue,fromindex)
其中,searchvalue是必需的,规定的字符串的值,而formindex则是可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
说明:
该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。
注意有的人可能会纳闷我前面的代码为什么会出现!=-1
,这个是因为:
① indexOf() 方法对大小写敏感!
② 如果要检索的字符串值没有出现,则该方法返回 -1。
例子1:
var str = "Hello world!"
console.log(str.indexOf("Hello")) // 0
console.log(str.indexOf("World")) // -1
console.log(str.indexOf("world")) // 6
例子2:判断字符串是否以http开头
var str = 'httpsdsff';
var newStr = str.indexOf("http");
if (newStr == 0) {
console.log("字符串是以http开头的!") // 字符串是以http开头的!
}
例3:去掉数组里所有以"access-"开头的元素
var ed = ['access-abc', 'access-abc1', 'access-abc2', 'access-abc3', 'zzz'];
var qq = [];
for (var i = 0; i < ed.length; i++) {
if (ed[i].indexOf('access-') == -1) {
qq.push(ed[i]);
}
}
//console.log(ed);
console.log(qq);
输出结果:
["zzz"]