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

質問編集履歴

4

KojiDoi様よりご指摘を受けて修正

2021/01/24 12:28

投稿

Woodwind
Woodwind

スコア3

title CHANGED
File without changes
body CHANGED
@@ -23,6 +23,17 @@
23
23
  // 結果をコンソールへ表示
24
24
  console.log(result); // -> '残す残す' という文字列を得たい
25
25
  ```
26
+
27
+ ↓KojiDoi様に「url」の連結がおかしいとご指摘頂き、以下に修正しました
28
+ ```
29
+ // iframeのsrcがこのurlであるiframeのみを削除したい
30
+ var url = "http://example/abc";
31
+ // 削除を実行
32
+ var obj = new RegExp( `<iframe(.+)?\ssrc=("|')` + url + `("|')(.+)?>(.+)?</iframe>`, 'g');
33
+ var result = str.replace( obj, '' );
34
+ // 結果をコンソールへ表示
35
+ console.log(result); // -> '残す残す' という文字列を得たい
36
+ ```
26
37
  正規表現は次の意味を考えて書きました。
27
38
 
28
39
  `<iframe(.+)?`

3

正規表現を修正

2021/01/24 12:28

投稿

Woodwind
Woodwind

スコア3

title CHANGED
File without changes
body CHANGED
@@ -19,7 +19,7 @@
19
19
  // iframeのsrcがこのurlであるiframeのみを削除したい
20
20
  var url = "http://example/abc";
21
21
  // 削除を実行
22
- var result = str.replace(new RegExp(/<iframe(.+)?\ssrc="|' + url + "|'(.+)?>(.+)?</iframe>/g), '');
22
+ var result = str.replace(new RegExp(/<iframe(.+)?\ssrc=("|') + url + ("|')(.+)?>(.+)?</iframe>/g), '');
23
23
  // 結果をコンソールへ表示
24
24
  console.log(result); // -> '残す残す' という文字列を得たい
25
25
  ```
@@ -31,7 +31,7 @@
31
31
  `\s`
32
32
  src の手前には必ずスペースがある
33
33
 
34
- `src="|' + url + "|'`
34
+ `src=("|') + url + ("|')`
35
35
  src の値は指定の url で、ダブルクオートまたはシングルクオートで囲まれている
36
36
 
37
37
  `(.+)?>`

2

`で囲む

2021/01/24 12:12

投稿

Woodwind
Woodwind

スコア3

title CHANGED
File without changes
body CHANGED
@@ -2,23 +2,22 @@
2
2
 
3
3
  まず以下`str`が与えられます。
4
4
  ```JavaScript
5
- var str = '残す<iframe width="560" src="http://example/abcdefghijk" frameborder="0"></iframe>残す';
5
+ var str = '残す<iframe width="560" src="http://example/abc" frameborder="0"></iframe>残す';
6
6
  ```
7
+
7
8
  ここから、
8
9
 
9
- <iframe src="指定URL"></iframe>
10
+ `<iframe src="指定URL"></iframe>`
10
-
11
11
  を削除して
12
12
 
13
- 残す残す
13
+ `残す残す`
14
-
15
14
  を得たいのですが、私の正規表現は何が間違っているでしょうか?
16
15
 
17
16
 
18
- 上記に対する正規表現次の通りです。
17
+ 正規表現次の通りです。
19
18
  ```javascript
20
19
  // iframeのsrcがこのurlであるiframeのみを削除したい
21
- var url = "http://example/abcdefghijk";
20
+ var url = "http://example/abc";
22
21
  // 削除を実行
23
22
  var result = str.replace(new RegExp(/<iframe(.+)?\ssrc="|' + url + "|'(.+)?>(.+)?</iframe>/g), '');
24
23
  // 結果をコンソールへ表示

1

URLなどの調整

2021/01/24 08:34

投稿

Woodwind
Woodwind

スコア3

title CHANGED
File without changes
body CHANGED
@@ -1,17 +1,16 @@
1
1
  JavaScriptで文字列の置換に取り組んでいまして、正規表現の書き方でわからない部分があります。宜しくお願い致します。
2
2
 
3
3
  まず以下`str`が与えられます。
4
- (コードブロックで囲むと一列になって見にくいので囲みませんでした)
5
-
6
- var str = 'この文は残したい<iframe width="560" height="315" src="https://www.youtube.com/embed/abcdefghijk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>この文も残したい';
7
-
4
+ ```JavaScript
5
+ var str = '残す<iframe width="560" src="http://example/abcdefghijk" frameborder="0"></iframe>残す';
6
+ ```
8
7
  ここから、
9
8
 
10
9
  <iframe src="指定URL"></iframe>
11
10
 
12
11
  を削除して
13
12
 
14
- この文はしたいこの文もしたい
13
+
15
14
 
16
15
  を得たいのですが、私の正規表現は何が間違っているでしょうか?
17
16
 
@@ -19,11 +18,11 @@
19
18
  上記に対する正規表現が次の通りです。
20
19
  ```javascript
21
20
  // iframeのsrcがこのurlであるiframeのみを削除したい
22
- var url = "https://www.youtube.com/embed/abcdefghijk";
21
+ var url = "http://example/abcdefghijk";
23
22
  // 削除を実行
24
23
  var result = str.replace(new RegExp(/<iframe(.+)?\ssrc="|' + url + "|'(.+)?>(.+)?</iframe>/g), '');
25
24
  // 結果をコンソールへ表示
26
- console.log(result); // -> 'この文はしたいこの文もしたい' という文字列を得たい
25
+ console.log(result); // -> '残' という文字列を得たい
27
26
  ```
28
27
  正規表現は次の意味を考えて書きました。
29
28