回答編集履歴
2
typo修正
answer
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
console.log(string.split(/(<[^>]*>)/).filter(token => token.length)); // ["<p>", "text", "<span>", "inner", "</span>", "</p>"]
|
8
8
|
```
|
9
9
|
|
10
|
-
### String
|
10
|
+
### String.prototype.match
|
11
11
|
|
12
12
|
```JavaScript
|
13
13
|
var string = '<p>text<span>inner</span></p>';
|
1
コード追記 (Array#filter)
answer
CHANGED
@@ -1,12 +1,18 @@
|
|
1
|
-
|
1
|
+
### String.prototype.split
|
2
2
|
|
3
3
|
```JavaScript
|
4
4
|
var string = '<p>text<span>inner</span></p>';
|
5
5
|
|
6
|
-
console.log(string.split(/(<[^>]*>)/));
|
6
|
+
console.log(string.split(/(<[^>]*>)/)); // ["", "<p>", "text", "<span>", "inner", "</span>", "", "</p>", ""]
|
7
|
+
console.log(string.split(/(<[^>]*>)/).filter(token => token.length)); // ["<p>", "text", "<span>", "inner", "</span>", "</p>"]
|
8
|
+
```
|
9
|
+
|
10
|
+
### String,prototype.match
|
11
|
+
|
12
|
+
```JavaScript
|
13
|
+
var string = '<p>text<span>inner</span></p>';
|
14
|
+
|
7
15
|
console.log(string.match(/<[^>]*>|[^<>]+/g)); // ["<p>", "text", "<span>", "inner", "</span>", "</p>"]
|
8
16
|
```
|
9
17
|
|
10
|
-
一応、`Array.prototype.filter` で「空文字の要素」を取り除けば、`String,prototype.match` と同じ結果になります。
|
11
|
-
|
12
18
|
Re: dadada-dadada さん
|