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

回答編集履歴

4

テキスト修正

2019/11/17 17:05

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
  ## (4)正規表現を使う(その3)
46
46
 
47
- はじめに挙げた**(1) 正規表現を使う** のコードの修正版です。
47
+ はじめに挙げた**(1) 正規表現を使う** の修正版です。
48
48
  `match` に与える正規表現に、先読みと後読みを使って、 `"` で囲まれた数字だけをマッチさせるようにすると、`replace` で `"` を削る処理が不要になります。
49
49
 
50
50
  ```javascript

3

テキスト修正

2019/11/17 17:05

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -42,6 +42,16 @@
42
42
  - **動作確認用CodePen: **[https://codepen.io/jun68ykt/pen/GRRPpvw?editors=0012](https://codepen.io/jun68ykt/pen/GRRPpvw?editors=0012)
43
43
 
44
44
 
45
+ ## (4)正規表現を使う(その3)
45
46
 
47
+ はじめに挙げた、 **(1) 正規表現を使う** のコードの修正版です。
48
+ `match` に与える正規表現に、先読みと後読みを使って、 `"` で囲まれた数字だけをマッチさせるようにすると、`replace` で `"` を削る処理が不要になります。
46
49
 
50
+ ```javascript
51
+ var list = str.match(/(?<=")\d(?=")/g).map(s => +s);
52
+ ```
53
+ - **動作確認用CodePen: **[https://codepen.io/jun68ykt/pen/pooqjBE?editors=0012](https://codepen.io/jun68ykt/pen/pooqjBE?editors=0012)
54
+
55
+
56
+
47
57
  参考になれば幸いです。

2

テキスト修正

2019/11/17 13:57

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -13,7 +13,6 @@
13
13
  ```
14
14
  - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/KKKbpEY?editors=0012](https://codepen.io/jun68ykt/pen/KKKbpEY?editors=0012)
15
15
 
16
-
17
16
  ## (2) HTMLをパースしてDOM操作から取得
18
17
 
19
18
  こんな方法もあります。
@@ -27,4 +26,22 @@
27
26
  - **動作確認用CodePen: **[https://codepen.io/jun68ykt/pen/QWWzjjR?editors=0012](https://codepen.io/jun68ykt/pen/QWWzjjR?editors=0012)
28
27
 
29
28
 
29
+ ## (3)正規表現を使う(その2)
30
+
31
+ 正規表現を使う場合、こんなやり方でもできます。
32
+
33
+ ```javascript
34
+ var regexp = /"(\d)"/g;
35
+
36
+ var list = [];
37
+ var m;
38
+ while (m = regexp.exec(str)) {
39
+ list.push(+m[1]);
40
+ }
41
+ ```
42
+ - **動作確認用CodePen: **[https://codepen.io/jun68ykt/pen/GRRPpvw?editors=0012](https://codepen.io/jun68ykt/pen/GRRPpvw?editors=0012)
43
+
44
+
45
+
46
+
30
47
  参考になれば幸いです。

1

テキスト修正

2019/11/17 13:23

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  ## (1) 正規表現を使う
10
10
 
11
11
  ```javascript
12
- var ids = str.match(/"\d"/g).map(s => +s.replace(/"/g, ''));
12
+ var list = str.match(/"\d"/g).map(s => +s.replace(/"/g, ''));
13
13
  ```
14
14
  - **動作確認用CodePen:** [https://codepen.io/jun68ykt/pen/KKKbpEY?editors=0012](https://codepen.io/jun68ykt/pen/KKKbpEY?editors=0012)
15
15
 
@@ -22,7 +22,7 @@
22
22
  var parser = new DOMParser();
23
23
  var doc = parser.parseFromString(str, "text/html");
24
24
 
25
- var ids = [...doc.querySelectorAll('div')].map(e => +e.id);
25
+ var list = [...doc.querySelectorAll('div')].map(e => +e.id);
26
26
  ```
27
27
  - **動作確認用CodePen: **[https://codepen.io/jun68ykt/pen/QWWzjjR?editors=0012](https://codepen.io/jun68ykt/pen/QWWzjjR?editors=0012)
28
28