The lastIndexOf() method returns the index within the calling String object of the last occurrence of the specified value, searching backwards from fromIndex. Returns -1 if the value is not found.


str.lastIndexOf(searchValue[, fromIndex])


A string representing the value to search for. If searchValue is an empty string, then fromIndex is returned.
fromIndex Optional
The index of the last character in the string to be considered as the beginning of a match. The default value is +Infinity. If fromIndex >= str.length, the whole string is searched. If fromIndex < 0, the behavior will be the same as if it would be 0.

Return value

The index of the last occurrence of the specified value; -1 if not found.


Characters in a string are indexed from left to right. The index of the first character is 0, and the index of the last character is str.length - 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 2

Note: 'abab'.lastIndexOf('ab', 2) will return 2 and not 0, as fromIndex limits only the beginning of the match.


The lastIndexOf() method is case sensitive. For example, the following expression returns -1:

'Blue Whale, Killer Whale'.lastIndexOf('blue'); // returns -1


Using indexOf() and lastIndexOf()

The following example uses indexOf() and lastIndexOf() to locate values in the string "Brave new world".

var anyString = 'Brave new world';

console.log('The index of the first w from the beginning is ' + anyString.indexOf('w'));
// logs 8
console.log('The index of the first w from the end is ' + anyString.lastIndexOf('w')); 
// logs 10
console.log('The index of "new" from the beginning is ' + anyString.indexOf('new'));
// logs 6
console.log('The index of "new" from the end is ' + anyString.lastIndexOf('new'));
// logs 6


Browser compatibilityUpdate compatibility data on GitHub

Chrome Edge Firefox Internet Explorer Opera Safari
Basic support Yes Yes 1 6 Yes Yes
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support Yes Yes Yes 4 Yes Yes Yes
Basic support Yes

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.