indexOf() 方法返回调用它的 String 对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索。如果未找到该值,则返回 -1。

参数

searchValue

一个字符串表示被查找的值。如果没有提供确切地提供字符串,searchValue 会被强制设置为 "undefined", 然后在当前字符串中查找这个值。

fromIndex 可选

表示开始查找的位置。可以是任意整数,默认值为 0。如果 fromIndex 小于 0,则查找整个字符串(等价于传入了 0)。如果 fromIndex 大于等于 str.length,则必返回 -1

返回值

指定值的第一次出现的索引;如果没有找到,则返回 -1。若被查找的字符串是一个空字符串,则返回值在0---str.length 之间,即:

  • fromIndex 小于等于 0 时,返回 0
  • fromIndex 大于 0 且小于等于 str.length 时,返回 fromIndex
  • fromIndex 大于字符串长度 str.length 时,返回 str.length

用法

基础用法

字符串中的字符被从左向右索引。首字符的索引(index)为 0,字符串 stringName 的最后一个字符的索引是 stringName.length - 1

"Hello World".indexOf("Hello");     // 返回  0
"Hello World".indexOf("Hellod");    // 返回 -1
"Hello World".indexOf("World", 0); // 返回  6
"Hello World".indexOf("World", 6); // 返回  6
"Hello World".indexOf("", -1); // 返回 0
"Hello World".indexOf("", 9);      // 返回  9
"Hello World".indexOf("", 10);     // 返回 10
"Hello World".indexOf("", 11);     // 返回 10

区分大小写

indexOf 方法区分大小写。例如,下面的表达式返回 -1:

"Hello World".indexOf("hello") // 返回 -1

检测是否存在某字符串 

当检测某个字符串是否存在于另一个字符串中时,可使用下面的方法:

"Hello World".indexOf("Hello") !== -1; // true
"Hello World".indexOf("Holle") !== -1; // false