回答編集履歴

1

勘違いしていたので回答内容を修正

2015/11/24 00:20

投稿

usk
usk

スコア397

test CHANGED
@@ -1,3 +1,7 @@
1
+ (補足)いくつか勘違いしていたので回答内容を修正しました。。。
2
+
3
+
4
+
1
5
  まずは、indexOf の仕様を再度確認してみてください。
2
6
 
3
7
  http://www.ajaxtower.jp/js/string_class/index14.html
@@ -10,21 +14,49 @@
10
14
 
11
15
 
12
16
 
13
- 1回目:文字列「あいうえおあいあ」→ indexOf 結果「1、6、8
17
+ 1回目:検索対象文字列「あいうえおあいあ」→ indexOf 結果「1」
14
18
 
15
- 2回目:文字列「いうえおあいあ」 → indexOf 結果「6、8
19
+ 2回目:検索対象文字列「いうえおあいあ」 → indexOf 結果「6」
16
20
 
17
- 3回目:文字列「うえおあいあ」 → indexOf 結果「6、8
21
+ 3回目:検索対象文字列「うえおあいあ」  → indexOf 結果「6」
18
22
 
19
- ……
23
+ 4回目:検索対象文字列「えおあいあ」  → indexOf 結果「6」
24
+
25
+ 5回目:検索対象文字列「おあいあ」    → indexOf 結果「6」
26
+
27
+ 6回目:検索対象文字列「あいあ」    → indexOf 結果「6」
28
+
29
+ 7回目:検索対象文字列「いあ」     → indexOf 結果「8」
30
+
31
+ 8回目:検索対象文字列「あ」       → indexOf 結果「8」
20
32
 
21
33
 
22
34
 
23
- 単純に文字列から「検索対象文字」のインデックス抜き出したいなら、for 文を利用る必要はございません
35
+ indexOf 利用て処理を行いたいなら、下記の形になります。
24
36
 
25
37
 
26
38
 
39
+ ```Javascript
40
+
41
+ var inputString = prompt("文字を入力", "あいうえおあいあ");
42
+
43
+ var searchString = prompt("検索したい文字を入力", "あ");
44
+
45
+ for(var i = 0; i < inputString.length; i++){
46
+
47
+ console.log(inputString.indexOf(searchString,i) + 1);
48
+
49
+ i = inputString.indexOf(searchString,i); // 見つかったindexまで開始位置を遷移
50
+
51
+ }
52
+
53
+ ```
54
+
55
+
56
+
57
+
58
+
27
- また、文字列を一文字ずつ解釈したいなら substr 関数で部分文字列を生成してください。
59
+ もし、文字列を一文字ずつ解釈したいなら substr 関数で部分文字列を生成してください。
28
60
 
29
61
 
30
62