このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
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 2015年7月.
lastIndexOf() はString 値のメソッドで、この文字列を検索し、指定した部分文字列が最後に出現するインデックスを返します。オプションで開始位置を取り、指定した数値以下のインデックスにおいて、指定した部分文字列が最後にに出現するインデックスを返します。
In this article
試してみましょう
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)}`,);// 予想される結果: "Index of the last "dog" is 38"構文
lastIndexOf(searchString)lastIndexOf(searchString, position)引数
searchString検索する値を表す文字列です。すべての値は文字列に変換されますので、省略したり
undefinedを渡したりすると、lastIndexOf()は"undefined"という文字列を検索します。これはおそらく望むところではないでしょう。position省略可このメソッドは、
position(既定値はInfinity)以下の位置で、指定した部分文字列が最後に現れるインデックスを返します。positionが呼び出された文字列の長さよりも大きい場合、このメソッドは呼び出される文字列全体を検索します。positionが0未満の場合、このメソッドは0の場合と同じように動作します。すなわち、このメソッドは指定された文字列をインデックス0でのみ検索します。'hello world hello'.lastIndexOf('world', 4)は-1を返します。部分文字列worldが現れるのは6のインデックスですが、その位置は4以下ではないからです。'hello world hello'.lastIndexOf('hello', 99)は12を返します。部分文字列helloが最後に現れる位置が、99以下である12の位置だからです。'hello world hello'.lastIndexOf('hello', 0)と'hello world hello'.lastIndexOf('hello', -5)はどちらも0を返します。helloをインデックス0でしか検索しないからです。
返値
searchString が最後に出現した位置です。見つからなかった場合は、-1 になります。
解説
文字列は 0 基点です。文字列の最初の文字のインデックスは0 で、文字列の最後の文字のインデックスは文字列の長さから 1 を引いたものになります。
"canal".lastIndexOf("a"); // 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 を返す大文字小文字の区別
lastIndexOf() メソッドは大文字と小文字を区別します。例えば、以下の式は-1 を返します。
"Blue Whale, Killer Whale".lastIndexOf("blue"); // -1 を返す例
>indexOf() と lastIndexOf() の使用
以下の例は、indexOf() とlastIndexOf() を使用して文字列"Brave, Brave New World" の中の値の位置を示します。
const anyString = "Brave, Brave New World";console.log(anyString.indexOf("Brave")); // 0console.log(anyString.lastIndexOf("Brave")); // 7仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-string.prototype.lastindexof> |