JavaScript/String/prototype/indexOf
表示
indexOfメソッドは文字列の中に指定された部分文字列が出現するインデックスを返します。
構文
[編集]const index = string.indexOf(searchString, fromIndex);
- searchString
- 探索対象の文字列。
- fromIndex
- 探索を開始するインデックスの起点。デフォルトでは0(文字列の先頭から探索)。
例
[編集]- 文字列
"Hello, world!"
の中から"l"
が最初に出現するインデックスを調べる:
const index = "Hello, world!".indexOf("l"); alert(index); // 2
- 関数の形をした文字列から関数の中身を取り出す:
const string = "function(a, b){ return a + b }"; const begin = string.indexOf("{"); // 14 const end = string.indexOf("}"); // 29 const body = string.slice( begin + 1, end ); alert(body); // " return a + b "
解説
[編集]indexOfメソッドは文字列の中に指定した部分文字列が出現するインデックスを取得するために用いられます。"Hello, world!"
という文字列の中には "l"
という部分文字列が2つ存在しますが、indexOfメソッドは最初に見つかったインデックスだけを返し、デフォルトでは文字列の先頭から探索を始めるため、2
が返されます(インデックスは0から始まる)。"Hello, world!".charAt(2) == "l"
です。
第2引数を指定すると文字列の先頭からではなく、任意のインデックスから探索を開始することができます。たとえば1を指定すると、先頭の文字を無視して2文字目から探索を始めます。文字列を末尾から逆に探索するにはlastIndexOfメソッドを使用します。
サロゲートペア領域の文字(例えば多くの絵文字)は2文字と数え、結合文字も1文字と数えます。
履歴
[編集]String.prototype.indexOfメソッドは、ECMAScript 5th Edition(ES5)で標準仕様化されました[1]。