質問するログイン新規登録

回答編集履歴

3

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

2017/04/29 13:08

投稿

think49
think49

スコア18194

answer CHANGED
@@ -5,14 +5,14 @@
5
5
 
6
6
  「スマートな正規表現が見つかりません。」とありますが、正規表現の学習のどれほどの時間をかけて、どの程度は理解していますか。
7
7
 
8
- ---
9
-
10
8
  **(2017/04/29 20:23追記)**
11
9
 
12
10
  要件を勘違いしていたので、上記アドバイスは忘れてください。
13
11
  ただ、やりたい要件を書くだけでなく、あなたが「分かっている範囲」と「分からない範囲」を具体化する事も大切だと思います。
14
12
  どの程度の知識があるのかわからないので、何をアドバイスしていいのか分かりません…。
15
13
 
14
+ ### String.prototype.replace
15
+
16
16
  とりあえず、下記コードで要件は満たせます。
17
17
 
18
18
  ```JavaScript
@@ -24,4 +24,30 @@
24
24
  console.log(str2); // "aaaaa[0][bbbbb][1][ccccc][1][ddddd]"
25
25
  ```
26
26
 
27
+ ### String.prototype.slice
28
+
29
+ > 先頭は'aaaaa[0]'で始まり、固定
30
+
31
+ 上記条件を踏まえると、先頭から8文字を読み飛ばすだけでも要件は満たせますね。
32
+
33
+ ```JavaScript
34
+ var str = 'aaaaa[0][bbbbb][0][ccccc][0][ddddd]';
35
+ var str2 = 'aaaaa[0]' + str.slice(8).replace(/\[0(?=\])/g, '[1');
36
+
37
+ console.log(str2); // "aaaaa[0][bbbbb][1][ccccc][1][ddddd]"
38
+ ```
39
+
40
+ ### String.prototype.indexOf
41
+
42
+ 汎用性を上げたコード。
43
+
44
+ ```JavaScript
45
+ var str = 'hogeaaaaa[0][bbbbb][0][ccccc][0][ddddd]',
46
+ a = 'aaaaa[0]',
47
+ index = str.indexOf(a) + a.length,
48
+ result = str.slice(0, index) + str.slice(index);
49
+
50
+ console.log(result); // "hogeaaaaa[0][bbbbb][0][ccccc][0][ddddd]"
51
+ ```
52
+
27
53
  Re: tatsuno さん

2

typo修正

2017/04/29 13:08

投稿

think49
think49

スコア18194

answer CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  ---
9
9
 
10
- **(2017/04/29 20:20追記)**
10
+ **(2017/04/29 20:23追記)**
11
11
 
12
- 要件を勘違いしていたで上記アドバイスは忘れてください。
12
+ 要件を勘違いしていた上記アドバイスは忘れてください。
13
13
  ただ、やりたい要件を書くだけでなく、あなたが「分かっている範囲」と「分からない範囲」を具体化する事も大切だと思います。
14
14
  どの程度の知識があるのかわからないので、何をアドバイスしていいのか分かりません…。
15
15
 

1

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

2017/04/29 11:24

投稿

think49
think49

スコア18194

answer CHANGED
@@ -5,4 +5,23 @@
5
5
 
6
6
  「スマートな正規表現が見つかりません。」とありますが、正規表現の学習のどれほどの時間をかけて、どの程度は理解していますか。
7
7
 
8
+ ---
9
+
10
+ **(2017/04/29 20:20追記)**
11
+
12
+ 要件を勘違いしていたんで上記アドバイスは忘れてください。
13
+ ただ、やりたい要件を書くだけでなく、あなたが「分かっている範囲」と「分からない範囲」を具体化する事も大切だと思います。
14
+ どの程度の知識があるのかわからないので、何をアドバイスしていいのか分かりません…。
15
+
16
+ とりあえず、下記コードで要件は満たせます。
17
+
18
+ ```JavaScript
19
+ var str = 'aaaaa[0][bbbbb][0][ccccc][0][ddddd]';
20
+ var str2 = str.replace(/(aaaaa\[0\])([\s\S]*\[0\])/, function (string, capture1, capture2) {
21
+ return capture1 + capture2.replace(/\[0(?=\])/g, '[1');
22
+ });
23
+
24
+ console.log(str2); // "aaaaa[0][bbbbb][1][ccccc][1][ddddd]"
25
+ ```
26
+
8
27
  Re: tatsuno さん