String.prototype.indexOf()

概要

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

構文

str.indexOf(searchValue[, fromIndex])

引数

searchValue
検索する値を表す文字列
fromIndex
呼び出す文字列内の検索を始めるための位置。0 とその文字列の長さの間にある整数を指定できます。デフォルトの値は 0 です。

詳細

文字列における文字は左から右にインデックス化されます。一番最初の文字のインデックスは 0 で、stringName として呼び出された文字列における一番最後の文字は stringName.length - 1 です。

"Blue Whale".indexOf("Blue");     // 0 を返す
"Blue Whale".indexOf("Blute");    // -1 を返す
"Blue Whale".indexOf("Whale", 0); // 5 を返す
"Blue Whale".indexOf("Whale", 5); // 5 を返す
"Blue Whale".indexOf("", 9);      // 9 を返す
"Blue Whale".indexOf("", 10);     // 10 を返す
"Blue Whale".indexOf("", 11);     // 10 を返す

indexOf メソッドは大文字と小文字を区別します。例えば、以下の表現は -1 を返します。

"Blue Whale".indexOf("blue")

例: indexOflastIndexOf の使用

以下の例は、 "Brave new world" という文字列において、与えられた値の位置を求めるために、indexOflastIndexOf を使用しています。

var anyString = "Brave new world";

document.write(
    "<P>The index of the first w from the beginning is " +
    anyString.indexOf("w")
); // 8 を表示

document.write(
    "<P>The index of the first w from the end is " +
    anyString.lastIndexOf("w")
); // 10 を表示

document.write(
    "<P>The index of 'new' from the beginning is " +
    anyString.indexOf("new")
); // 6 を表示

document.write(
    "<P>The index of 'new' from the end is " +
    anyString.lastIndexOf("new")
); // 6 を表示

例: indexOf と 大文字と小文字の区別

以下の例は 2 つの文字列の変数を定義しています。それらの変数は、2 番目の文字列が大文字を含んでいることを除けば、同じ文字列を含んでいます。1 番目の writeln メソッドは 19 を表示します。 しかし、indexOf メソッドは大文字と小文字を区別するので、"cheddar" という文字列は myCapString では見つけられません。ですから、writeln メソッドは -1 を表示します。

var myString = "brie, pepper jack, cheddar";
var myCapString = "Brie, Pepper Jack, Cheddar";

document.writeln(
    'myString.indexOf("cheddar") is ' +
    myString.indexOf("cheddar")
);

document.writeln(
    '<P>myCapString.indexOf("cheddar") is ' +
    myCapString.indexOf("cheddar")
);

例: ある文字列中で、ある 1 つの文字が出現する回数を数えるための indexOf の使用

以下の例は、count に、str という文字列中で x という文字が出現する回数を設定します。

var count = 0;
var pos = str.indexOf("x");

while ( pos != -1 ) {
   count++;
   pos = str.indexOf("x", pos + 1);
}

関連情報

ドキュメントのタグと貢献者

Contributors to this page: teoli, ethertank, Potappo, Mgjbot
最終更新者: teoli,
サイドバーを隠す