📜  JavaScript字符串indexOf()

📅  最后修改于: 2020-09-27 07:06:22             🧑  作者: Mango

JavaScript String indexOf()方法返回字符串给定值的第一个出现索引;如果不存在,则返回-1。

indexOf()方法的语法为:

str.indexOf(searchValue, fromIndex)

在这里, str是一个字符串。


indexOf()参数

indexOf()方法采用:

  • searchValue-要在字符串搜索的值。如果没有明确提供任何字符串 ,将搜索“ undefined”
  • fromIndex (可选)-开始搜索的索引。默认情况下为0 。如果fromIndex <0 ,则搜索从索引0开始。

从indexOf()返回值
  • 如果该值至少存在一次,则返回该值在字符串中的第一个索引。
  • 如果在字符串找不到该值,则返回-1

注意: indexOf()方法区分大小写。

对于空字符串 searchValuefromIndex小于字符串的长度, indexOf返回与fromIndex相同的值。

同样,对于空字符串 searchValuefromIndex大于字符串长度的indexOfindexOf返回字符串的长度。

"Programiz JavaScript".indexOf("", 0); // returns 0
"Programiz JavaScript".indexOf("", 3); // returns 3

// string length here is 20
"Programiz JavaScript".indexOf("", 25); // returns 20
"Programiz JavaScript".indexOf("", 21); // returns 20

示例1:使用indexOf()方法
var str = "JavaScript is the world's most misunderstood programming language.";

// indexOf() returns the first occurance
var index1 = str.indexOf("language");
console.log(index1); // 57

var index2 = str.indexOf("p");
console.log(index2); // 8

// second argument specifies the search's start index
var index3 = str.indexOf("p", 9);
console.log(index3); // 45

// indexOf returns -1 if not found
var index4 = str.indexOf("Python");
console.log(index4); // -1

输出

57
8
45
-1

示例2:查找元素的所有出现
function findAllIndex(string, value) {
  indices = [];
  var currentIndex = string.indexOf(value);
  while (currentIndex != -1) {
    indices.push(currentIndex);
    currentIndex = string.indexOf(value, currentIndex + value.length);
  }
  return indices;
}

var str = "JavaScript is as related to Java as Carpenter is to Carpet.";

var occurance1 = findAllIndex(str, "J");
console.log(occurance1); // [ 0, 28 ]

var occurance2 = findAllIndex(str, "Carpet");
console.log(occurance2); // [ 52 ]

var occurance3 = findAllIndex(str, "x");
console.log(occurance3); // []

输出

[ 0, 28 ]
[ 52 ]
[]

推荐读物:

  • JavaScript字串
  • JavaScript String.lastIndexOf()