Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
indexOf() は String 値のメソッドで、この文字列を検索し、指定した部分文字列が最初に出現するインデックスを返します。 オプションで開始位置を取り、指定した数値以上のインデックスで指定した部分文字列が最初に出現するインデックスを返します。
検索する値を表す文字列です。すべての値は文字列に変換されますので、省略したり undefined を渡したりすると、indexOf() は "undefined" という文字列を検索します。これはおそらく望むところではないでしょう。
position 省略可このメソッドは、position(既定値は 0)以上の位置で、指定した部分文字列が最初に現れるインデックスを返します。position が呼び出された文字列の長さよりも大きい場合、このメソッドは呼び出される文字列をまったく検索しません。position が 0 未満の場合、このメソッドは position が 0 のときと同じように動作します。
'hello world hello'.indexOf('o', -5) は 4 を返します。これは第 2 引数が 0 であるかのように動作し、o が 0 以上の位置で最初に現れるのが 4 だからです。
'hello world hello'.indexOf('world', 12) は -1 を返します。実際に部分文字列 world が現れるのは 6 のインデックスですが、その位置は 12 以上ではないからです。
'hello world hello'.indexOf('o', 99) は -1 を返します。99 が hello world hello の長さよりも大きいため、メソッドが全く文字列を検索しなくなるからです。
searchString が最初に見つかったインデックス、または見つからなかった場合は -1 です。
空の検索文字列で検索すると、奇妙な結果になります。第 2 引数がなかった場合や、第 2 引数の値が呼び出した文字列の長さよりも小さかった場合、返値は第 2 引数と同じになります。
しかし、第 2 引数の値が文字列の長さ以上であった場合、返値は文字列の長さになります。
前者の例では、メソッドは第 2 引数で指定した位置の直後に空文字列を見つけたかのように動作します。 後者の例では、メソッドは呼び出した文字列の終わりに空文字列を見つけたかのように動作します。
文字列は 0 基点です。文字列の最初の文字のインデックスは 0 で、文字列の最後の文字のインデックスは文字列の長さから 1 を引いたものになります。
indexOf() メソッドは大文字と小文字を区別します。例えば、以下の式は -1 を返します。
文字列の中に特定の部分文字列があるかどうかを調べる場合、返値が -1 であるかどうかを調べるのが正しい方法です。
以下の例は indexOf() を使用して、"Brave new world" という文字列において指定された値の位置を求めています。
以下の例は 2 つの文字列の変数を定義しています。
それらの変数は、2 番目の文字列が大文字を含んでいることを除けば、同じ文字列を含んでいます。1 番目の console.log() メソッドは 19 を表示します。しかし、indexOf() メソッドは大文字と小文字を区別するので、"cheddar" という文字列は myCapString では見つけられません。ですから、 console.log() メソッドは -1 を表示します。
以下の例は、 count に、 str という文字列中で e という文字が出現する回数を設定します。
| ECMAScript® 2027 Language Specification # sec-string.prototype.indexof |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年8月22日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.