回答編集履歴

2

typo修正

2019/12/15 03:14

投稿

think49
think49

スコア18189

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
 
18
18
 
19
- ### String,prototype.match
19
+ ### String.prototype.match
20
20
 
21
21
 
22
22
 

1

コード追記 (Array#filter)

2019/12/15 03:14

投稿

think49
think49

スコア18189

test CHANGED
@@ -1,4 +1,4 @@
1
- `String.prototype.split` は**分割**するもので、全てにマッチするのは得意分野ではないのですが…。
1
+ ### String.prototype.split
2
2
 
3
3
 
4
4
 
@@ -8,7 +8,23 @@
8
8
 
9
9
 
10
10
 
11
- console.log(string.split(/(<[^>]*>)/)); // ["", "<p>", "text", "<span>", "inner", "</span>", "", "</p>", ""]
11
+ console.log(string.split(/(<[^>]*>)/)); // ["", "<p>", "text", "<span>", "inner", "</span>", "", "</p>", ""]
12
+
13
+ console.log(string.split(/(<[^>]*>)/).filter(token => token.length)); // ["<p>", "text", "<span>", "inner", "</span>", "</p>"]
14
+
15
+ ```
16
+
17
+
18
+
19
+ ### String,prototype.match
20
+
21
+
22
+
23
+ ```JavaScript
24
+
25
+ var string = '<p>text<span>inner</span></p>';
26
+
27
+
12
28
 
13
29
  console.log(string.match(/<[^>]*>|[^<>]+/g)); // ["<p>", "text", "<span>", "inner", "</span>", "</p>"]
14
30
 
@@ -16,8 +32,4 @@
16
32
 
17
33
 
18
34
 
19
- 一応、`Array.prototype.filter` で「空文字の要素」を取り除けば、`String,prototype.match` と同じ結果になります。
20
-
21
-
22
-
23
35
  Re: dadada-dadada さん