JavaScript String indexOf()

The JavaScript String indexOf() method returns the first index of occurance of a given value in the string, or -1 if it is not present.

The syntax of the indexOf() method is:

str.indexOf(searchValue, fromIndex)

Here, str is a string.


indexOf() Parameters

The indexOf() method takes in:

  • searchValue - The value to search for in the string. If no string is provided explicitly, "undefined" will be searched.
  • fromIndex (optional) - The index to start the search at. By default it is 0. If fromIndex < 0, the search starts at index 0.

Return value from indexOf()

  • Returns the first index of the value in the string if it is present at least once.
  • Returns -1 if the value is not found in the string.

Note: The indexOf() method is case sensitive.

For empty string searchValue and fromIndex less than the string's length, indexOf returns the value the same as fromIndex.

Similarly, for empty string searchValue and fromIndex greater than the string's length, indexOf returns the string's length.

"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

Example 1: Using indexOf() method

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

Output

57
8
45
-1

Example 2: Finding All the Occurrences of an Element

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); // []

Output

[ 0, 28 ]
[ 52 ]
[]

Recommended Readings: