indexOf()
メソッドは、呼び出す String
オブジェクト中で、fromIndex
から検索を始め、指定された値が最初に現れたインデックスを返します。値が見つからない場合は -1 を返します。
構文
str.indexOf(searchValue[, fromIndex]
)
引数
searchValue
- 検索する値を表す文字列。
fromIndex
Optional- 呼び出す文字列内の検索を始めるための位置。整数を指定できる。デフォルトの値は
0
。fromIndex <= 0
の場合、文字列全体が検索される。fromIndex >= str.length
の場合、 文字列は検索されず-1
を返す。searchValue
が空文字でない限り、str.length
が返される。
戻り値
指定した値が初めて出現したインデックス。見つからなかった場合は、-1。
詳細
文字列における文字は左から右にインデックス化されます。一番最初の文字のインデックスは 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(""); // 0 を返す "Blue Whale".indexOf("", 9); // 9 を返す "Blue Whale".indexOf("", 10); // 10 を返す "Blue Whale".indexOf("", 11); // 10 を返す
大文字と小文字の区別
indexOf()
メソッドは大文字と小文字を区別します。例えば、以下の表現は -1 を返します。
"Blue Whale".indexOf("blue")
出現のチェック
'0' は true
と評価されず、'-1' は false
と評価されないことに注意してください。それゆえ、特定の文字列がほかの文字列に含まれているかチェックする正確な方法は次のようになります:
'Blue Whale'.indexOf('Blue') !== -1; // true 'Blue Whale'.indexOf('Bloe') !== -1; // false
例
例: indexOf()
と lastIndexOf()
の使用
以下の例は、 "Brave new world
" という文字列において、与えられた値の位置を求めるために、indexOf
と lastIndexOf()
を使用しています。
var anyString = 'Brave new world'; console.log('The index of the first w from the beginning is ' + anyString.indexOf('w')); // 8 を表示 console.log('The index of the last w from the beginning is ' + anyString.lastIndexOf('w')); // 10 を表示 console.log('The index of "new" from the beginning is ' + anyString.indexOf('new')); // 6 を表示 console.log('The index of "new" from the end is ' + anyString.lastIndexOf('new')); // 6 を表示
例: indexOf()
と 大文字と小文字の区別
以下の例は 2 つの文字列の変数を定義しています。それらの変数は、2 番目の文字列が大文字を含んでいることを除けば、同じ文字列を含んでいます。1 番目の console.log()
メソッドは 19 を表示します。 しかし、indexOf
メソッドは大文字と小文字を区別するので、"cheddar
" という文字列は myCapString
では見つけられません。ですから、console.log()
メソッドは -1 を表示します。
var myString = 'brie, pepper jack, cheddar'; var myCapString = 'Brie, Pepper Jack, Cheddar'; console.log('myString.indexOf("cheddar") is ' + myString.indexOf('cheddar')); // 19 を表示 console.log('myCapString.indexOf("cheddar") is ' + myCapString.indexOf('cheddar')); // -1 を表示
例: ある文字列中で、ある 1 つの文字が出現する回数を数えるための indexOf()
の使用
以下の例は、count
に、str
という文字列中で e
という文字が出現する回数を設定します。
var str = 'To be, or not to be, that is the question.'; var count = 0; var pos = str.indexOf('e'); while (pos !== -1) { count++; pos = str.indexOf('e', pos + 1); } console.log(count); // 4 を表示
仕様
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |