String.prototype.lastIndexOf()

lastIndexOf() メソッドは、呼び出した String オブジェクトの中で、 fromIndex から前方向に検索を始め、指定された値が最後に現れたインデックスを返します。値が見つからない場合は -1 を返します。

構文

str.lastIndexOf(searchValue[, fromIndex])

引数

searchValue
検索する値を表す文字列です。 searchValue が空文字列であった場合は、 fromIndex を返します。
fromIndex Optional
比較の先頭とみなされる文字列の最後の文字の位置です。既定値は +Infinity です。 fromIndex >= str.length の場合、文字列全体が検索されます。 fromIndex < 0 の場合は、 0 の場合と同じ動作になります。

返値

searchValue が最後に出現した位置です。見つからなかった場合は、 -1 になります。

解説

文字列における文字は左から右にインデックス化されます。一番最初の文字の位置は 0 で、一番最後の文字は str.length - 1 です。

'canal'.lastIndexOf('a');     // returns 3
'canal'.lastIndexOf('a', 2);  // 1 を返す
'canal'.lastIndexOf('a', 0);  // -1 を返す
'canal'.lastIndexOf('x');     // -1 を返す
'canal'.lastIndexOf('c', -5); // 0 を返す
'canal'.lastIndexOf('c', 0);  // 0 を返す
'canal'.lastIndexOf('');      // 5 を返す
'canal'.lastIndexOf('', 2);   // 2 を返す

注: 'abab'.lastIndexOf('ab', 2)2 を返し、 0 にはなりません。 fromIndex は検索の開始位置を制約するものだからです。

大文字と小文字の区別

lastIndexOf() メソッドは大文字と小文字を区別します。例えば、以下の式は -1 を返します。

'Blue Whale, Killer Whale'.lastIndexOf('blue'); // -1 を返す

indexOf() と lastIndexOf() の使用

以下の例は、 indexOf()lastIndexOf() を使用して文字列 "Brave new world" の中の値の位置を示します。

let anyString = 'Brave new world';

console.log('先頭から見て最初に w が出現する位置: ' + anyString.indexOf('w'));
// 8 と出力
console.log('末尾から見て最初に w が出現する位置: ' + anyString.lastIndexOf('w')); 
// 10 と出力
console.log('先頭から見た "new" の位置: ' + anyString.indexOf('new'));
// 6 と出力
console.log('末尾から見た "new" の位置: ' + anyString.lastIndexOf('new'));
// 6 と出力

仕様書

仕様書
ECMAScript (ECMA-262)
String.prototype.lastIndexOf の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
lastIndexOfChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 6Opera 完全対応 3Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100

凡例

完全対応  
完全対応

関連情報