回答編集履歴

3

String\.prototype\.slice, String\.prototype\.indexOf のコードを追記

2017/04/29 13:08

投稿

think49
think49

スコア18156

test CHANGED
@@ -12,10 +12,6 @@
12
12
 
13
13
 
14
14
 
15
- ---
16
-
17
-
18
-
19
15
  **(2017/04/29 20:23追記)**
20
16
 
21
17
 
@@ -25,6 +21,10 @@
25
21
  ただ、やりたい要件を書くだけでなく、あなたが「分かっている範囲」と「分からない範囲」を具体化する事も大切だと思います。
26
22
 
27
23
  どの程度の知識があるのかわからないので、何をアドバイスしていいのか分かりません…。
24
+
25
+
26
+
27
+ ### String.prototype.replace
28
28
 
29
29
 
30
30
 
@@ -50,4 +50,56 @@
50
50
 
51
51
 
52
52
 
53
+ ### String.prototype.slice
54
+
55
+
56
+
57
+ > 先頭は'aaaaa[0]'で始まり、固定
58
+
59
+
60
+
61
+ 上記条件を踏まえると、先頭から8文字を読み飛ばすだけでも要件は満たせますね。
62
+
63
+
64
+
65
+ ```JavaScript
66
+
67
+ var str = 'aaaaa[0][bbbbb][0][ccccc][0][ddddd]';
68
+
69
+ var str2 = 'aaaaa[0]' + str.slice(8).replace(/\[0(?=\])/g, '[1');
70
+
71
+
72
+
73
+ console.log(str2); // "aaaaa[0][bbbbb][1][ccccc][1][ddddd]"
74
+
75
+ ```
76
+
77
+
78
+
79
+ ### String.prototype.indexOf
80
+
81
+
82
+
83
+ 汎用性を上げたコード。
84
+
85
+
86
+
87
+ ```JavaScript
88
+
89
+ var str = 'hogeaaaaa[0][bbbbb][0][ccccc][0][ddddd]',
90
+
91
+ a = 'aaaaa[0]',
92
+
93
+ index = str.indexOf(a) + a.length,
94
+
95
+ result = str.slice(0, index) + str.slice(index);
96
+
97
+
98
+
99
+ console.log(result); // "hogeaaaaa[0][bbbbb][0][ccccc][0][ddddd]"
100
+
101
+ ```
102
+
103
+
104
+
53
105
  Re: tatsuno さん

2

typo修正

2017/04/29 13:08

投稿

think49
think49

スコア18156

test CHANGED
@@ -16,11 +16,11 @@
16
16
 
17
17
 
18
18
 
19
- **(2017/04/29 20:20追記)**
19
+ **(2017/04/29 20:23追記)**
20
20
 
21
21
 
22
22
 
23
- 要件を勘違いしていたで上記アドバイスは忘れてください。
23
+ 要件を勘違いしていた上記アドバイスは忘れてください。
24
24
 
25
25
  ただ、やりたい要件を書くだけでなく、あなたが「分かっている範囲」と「分からない範囲」を具体化する事も大切だと思います。
26
26
 

1

aaaaa\[0\]\[bbbbb\]\[0\]\[ccccc\]\[0\]\[ddddd\] -> aaaaa\[0\]\[bbbbb\]\[1\]\[ccccc\]\[1\]\[ddddd\]

2017/04/29 11:24

投稿

think49
think49

スコア18156

test CHANGED
@@ -12,4 +12,42 @@
12
12
 
13
13
 
14
14
 
15
+ ---
16
+
17
+
18
+
19
+ **(2017/04/29 20:20追記)**
20
+
21
+
22
+
23
+ 要件を勘違いしていたんで上記アドバイスは忘れてください。
24
+
25
+ ただ、やりたい要件を書くだけでなく、あなたが「分かっている範囲」と「分からない範囲」を具体化する事も大切だと思います。
26
+
27
+ どの程度の知識があるのかわからないので、何をアドバイスしていいのか分かりません…。
28
+
29
+
30
+
31
+ とりあえず、下記コードで要件は満たせます。
32
+
33
+
34
+
35
+ ```JavaScript
36
+
37
+ var str = 'aaaaa[0][bbbbb][0][ccccc][0][ddddd]';
38
+
39
+ var str2 = str.replace(/(aaaaa\[0\])([\s\S]*\[0\])/, function (string, capture1, capture2) {
40
+
41
+ return capture1 + capture2.replace(/\[0(?=\])/g, '[1');
42
+
43
+ });
44
+
45
+
46
+
47
+ console.log(str2); // "aaaaa[0][bbbbb][1][ccccc][1][ddddd]"
48
+
49
+ ```
50
+
51
+
52
+
15
53
  Re: tatsuno さん