HomeSearch

JavaScript indexOf and lastIndexOf

Call the indexOf function to find the location of a substring in a string. LastIndexOf searches in reverse.

IndexOf.

One string exists as a substring inside another. We can search for it with indexOf or lastIndexOf. An index integer is returned.

Another method,

includes, also can search for strings. For more complex requirements a regular expression pattern and search() can be used.

IndexOf example.

This method searches strings. We pass it a substring we want to find in a string. It returns the index where the substring is found. If nothing is found it returns -1.Strings

First: We have a string that contains the final 3 letters of the alphabet. Then we search for 2 of them—and "q" which is not found.

JavaScript program that uses indexOf var letters = "xyz"; // This is at index 0. var letterX = letters.indexOf("x"); console.log("RESULT 1: " + letterX); // This is at index 2. var letterZ = letters.indexOf("z"); console.log("RESULT 2: " + letterZ); // Not found, so we get -1 instead of an index. var letterQ = letters.indexOf("q"); console.log("RESULT 3: " + letterQ); Output RESULT 1: 0 RESULT 2: 2 RESULT 3: -1

Start argument.

The indexOf method has an optional second argument. This is an integer that tells indexOf where to start searching.

Here: We pass 0 and the first "cat" string is found. But when we pass 1, we find the second "cat" string as we miss the first.

JavaScript program that uses indexOf, start argument var words = "cat dog cat"; // Find the word beginning at index 0. var result1 = words.indexOf("cat", 0); console.log("RESULT: " + result1); // Find the word beginning at index 1. // ... The first instance is not found. var result2 = words.indexOf("cat", 1); console.log("RESULT: " + result2); Output RESULT: 0 RESULT: 8

LastIndexOf.

This method searches a string from the right side. It starts with the last index and then processes backwards to the first index.
JavaScript program that uses lastIndexOf var words = "cat dog cat"; // Find last occurrence of this substring. var result = words.lastIndexOf("cat"); console.log("LASTINDEXOF: " + result); Output LASTINDEXOF: 8

Includes.

Sometimes an index is not needed when searching a string. We use includes() to see whether a substring exists as part of another or not.

Tip: This could be implemented with indexOf and a check against -1. But includes is easier to read.

JavaScript program that uses includes var birds = "parakeet parrot penguin"; // See if the string includes parrot. if (birds.includes("parrot")) { console.log("Parrot found"); } // This word is not found in the string. if (!birds.includes("zebra")) { console.log("Zebra not found"); } Output Parrot found Zebra not found

Scan strings.

With indexOf, we must loop over the string to find a single value. This can result in excessive looping. We can scan strings for multiple characters at once with charCodeAt.charCodeAt

A review.

Strings are commonly searched in JavaScript. With indexOf and its friends lastIndexOf and includes, this searching is made easy.
Home
Dot Net Perls
© 2007-2019 Sam Allen. All rights reserved. Written by Sam Allen, info@dotnetperls.com.