String.prototype.lastIndexOf()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
ThelastIndexOf() method ofString values searches this string and returns the index of the last occurrence of the specified substring. It takes an optional starting position and returns the last occurrence of the specified substring at an index less than or equal to the specified number.
In this article
Try it
const paragraph = "I think Ruth's dog is cuter than your dog!";const searchTerm = "dog";console.log( `Index of the last "${searchTerm}" is ${paragraph.lastIndexOf(searchTerm)}`,);// Expected output: "Index of the last "dog" is 38"Syntax
lastIndexOf(searchString)lastIndexOf(searchString, position)Parameters
searchStringSubstring to search for. All values arecoerced to strings, so omitting it or passing
undefinedcauseslastIndexOf()to search for the string"undefined", which is rarely what you want.positionOptionalThe method returns the index of the last occurrence of the specified substring at a position less than or equal to
position, which defaults toInfinity. Ifpositionis greater than the length of the calling string, the method searches the entire string. Ifpositionis less than0, the behavior is the same as for0— that is, the method looks for the specified substring only at index0.'hello world hello'.lastIndexOf('world', 4)returns-1— because, while the substringworlddoes occurs at index6, that position is not less than or equal to4.'hello world hello'.lastIndexOf('hello', 99)returns12— because the last occurrence ofhelloat a position less than or equal to99is at position12.'hello world hello'.lastIndexOf('hello', 0)and'hello world hello'.lastIndexOf('hello', -5)both return0— because both cause the method to only look forhelloat index0.
Return value
The index of the last occurrence ofsearchString found, or-1 if not found.
Description
Strings are zero-indexed: The index of a string's first character is0, and the index of a string's last character is the length of the string minus 1.
"canal".lastIndexOf("a"); // returns 3"canal".lastIndexOf("a", 2); // returns 1"canal".lastIndexOf("a", 0); // returns -1"canal".lastIndexOf("x"); // returns -1"canal".lastIndexOf("c", -5); // returns 0"canal".lastIndexOf("c", 0); // returns 0"canal".lastIndexOf(""); // returns 5"canal".lastIndexOf("", 2); // returns 2Case-sensitivity
ThelastIndexOf() method is case sensitive. For example, the followingexpression returns-1:
"Blue Whale, Killer Whale".lastIndexOf("blue"); // returns -1Examples
>Using indexOf() and lastIndexOf()
The following example usesindexOf() andlastIndexOf() to locate values in the string"Brave, Brave New World".
const anyString = "Brave, Brave New World";console.log(anyString.indexOf("Brave")); // 0console.log(anyString.lastIndexOf("Brave")); // 7Specifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.lastindexof> |