JavaScript

String.prototype.lastIndexOf()メソッド

 編集:2022.08.16 by T.A.

その String 中で、指定位置から指定文字列を前方に検索し最初に現れた位置を返します。

number=String.lastIndexOf(searchValue [, fromIndex] )
String String、文字列。
searchValue 検索する値を表す文字列です。searchValue が空文字列であった場合は、fromIndex を返します。
fromIndex 省略可。比較の先頭とみなされる文字列の最後の文字の位置です。既定値は +Infinity です。

fromIndexString.length の場合、文字列全体が検索されます。

fromIndex < 0 の場合は、0 の場合と同じ動作になります。

戻り値

Number。見つからなかった場合は、-1 になります。

解説

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

D='canal'.lastIndexOf('a');     //=3
D='canal'.lastIndexOf('a', 2);  //=1
D='canal'.lastIndexOf('a', 0);  //=-1
D='canal'.lastIndexOf('x');     //=-1
D='canal'.lastIndexOf('c', -5); //=0
D='canal'.lastIndexOf('c', 0);  //=0
D='canal'.lastIndexOf('');      //=5
D='canal'.lastIndexOf('', 2);   //=2

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

大文字と小文字の区別

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

D='Blue Whale, Killer Whale'.lastIndexOf('blue'); //=-1
indexOf() と lastIndexOf() の使用

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

let anyString = 'Brave new world';

D=anyString.indexOf('w');       //=8
D=anyString.lastIndexOf('w');   //=10
D=anyString.indexOf('new');     //=6
D=anyString.lastIndexOf('new'); //=6

テスト