(補足)いくつか勘違いしていたので回答内容を修正しました。。。
まずは、indexOf の仕様を再度確認してみてください。
http://www.ajaxtower.jp/js/string_class/index14.html
→ 第2引数は、文字列の検索開始位置を設定するものです。
つまり、ループ処理は下記の結果を返しているはずです。
1回目:検索対象文字列「あいうえおあいあ」→ indexOf 結果「1」
2回目:検索対象文字列「いうえおあいあ」 → indexOf 結果「6」
3回目:検索対象文字列「うえおあいあ」 → indexOf 結果「6」
4回目:検索対象文字列「えおあいあ」 → indexOf 結果「6」
5回目:検索対象文字列「おあいあ」 → indexOf 結果「6」
6回目:検索対象文字列「あいあ」 → indexOf 結果「6」
7回目:検索対象文字列「いあ」 → indexOf 結果「8」
8回目:検索対象文字列「あ」 → indexOf 結果「8」
indexOf を利用して処理を行いたいなら、下記の形になります。
Javascript
1 var inputString = prompt("文字を入力", "あいうえおあいあ");
2 var searchString = prompt("検索したい文字を入力", "あ");
3 for(var i = 0; i < inputString.length; i++){
4 console.log(inputString.indexOf(searchString,i) + 1);
5 i = inputString.indexOf(searchString,i); // 見つかったindexまで開始位置を遷移
6 }
もし、文字列を一文字ずつ解釈したいなら substr 関数で部分文字列を生成してください。
例:Substr 関数利用例:
Javascript
1 var inputString = prompt("文字を入力", "あいうえおあいあ");
2 var searchString = prompt("検索したい文字を入力", "あ");
3 for(var i = 0; i < inputString.length; i++){
4 if (inputString.substring(i,i+1) == searchString) {
5 console.log(i+1);
6 }
7 }
8
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/24 00:24 編集