JavaScript: indexOf() 文字列を検索する
indexOf()メソッドは文字列を検索し、最初に見つかったインデックスを返します。
見つからなかった場合は、-1を返します。検索開始位置のデフォルトは0です。
indexOf()は大文字と小文字を区別するので、必要に応じて検索前に大文字小文字を変換する処理を行ってください。
書式
str.indexOf(検索文字列[, 検索開始位置])
コード例
var str = 'abcde';
console.log(str.indexOf('a')); // 0 先頭は0を返す
console.log(str.indexOf('c')); // 2
console.log(str.indexOf('de')); // 3
console.log(str.indexOf('z')); // -1 無い場合は-1を返す
console.log(str.indexOf('A')); // -1 大文字小文字を区別する
文字列の出現回数を調べる
文字列strの中に、特定の文字列'a'が何回出現するかをカウントするプログラムです。 「ループ」と「検索開始位置」を利用することで出現回数を調べることができます。
var str = 'abcdeabcdeabcde';
var count = 0; // カウント
var idx = 0; // 検索開始位置
idx = str.indexOf('a');
while(idx != -1){
count++;
// 次のインデックスから検索
idx = str.indexOf('a', idx + 1);
}
console.log('出現回数: ' + count); // 出現回数: 3
ポイントは次の1行です
// 次のインデックスから検索
idx = str.indexOf('a', idx + 1);
検索開始位置を「idx + 1」とすることで、見つかった位置の次の文字から検索しています。