回答編集履歴
2
typo修正
test
CHANGED
@@ -294,7 +294,7 @@
|
|
294
294
|
|
295
295
|
|
296
296
|
|
297
|
-
- 2016/06/12 06:36 連続するp要素の2つ目以降のp要素の before-n が期待通りに動作しなかった不具合を修正。before-n における ` ` の合計算出時に要素を乗り越えて記録していた不具合を修正(
|
297
|
+
- 2016/06/12 06:36 連続するp要素の2つ目以降のp要素の before-n が期待通りに動作しなかった不具合を修正。before-n における ` ` の合計算出時に要素を乗り越えて記録していた不具合を修正(今までのサンプルではホワイトスペースノードで数値がクリアされていたので表面化されていませんでした)。
|
298
298
|
|
299
299
|
|
300
300
|
|
1
before-n ののバグ修正
test
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
+
### String.prototype.replace
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
`String.prototype.replace` の第二引数に関数を指定して分岐処理すれば良いと思います。
|
2
6
|
|
3
7
|
|
4
8
|
|
5
|
-
- [HTMLタグを解析して書き換える - JSFiddle](https://jsfiddle.net/n1tb3pky/)
|
9
|
+
- [HTMLタグを解析して書き換える - JSFiddle](https://jsfiddle.net/n1tb3pky/1/)
|
6
10
|
|
7
11
|
|
8
12
|
|
@@ -78,7 +82,7 @@
|
|
78
82
|
|
79
83
|
|
80
84
|
|
81
|
-
return string.replace(/(<p(?: [^>]*)?>)([^<>]*<\x2Fp>)([^<>]*)|<[^>]*>|([^<>]+)/g, function (match, p1, p2, p3, p4) {
|
85
|
+
return string.replace(/(<p(?: [^>]*)?>)([^<>]*<\x2Fp>)([^<>]*)|(<[^>]*>)|([^<>]+)/g, function (match, p1, p2, p3, p4, p5) {
|
82
86
|
|
83
87
|
if (p1) {
|
84
88
|
|
@@ -102,6 +106,8 @@
|
|
102
106
|
|
103
107
|
tokens.push('after-' + after.length);
|
104
108
|
|
109
|
+
before = after.length;
|
110
|
+
|
105
111
|
}
|
106
112
|
|
107
113
|
|
@@ -114,7 +120,15 @@
|
|
114
120
|
|
115
121
|
if (p4) {
|
116
122
|
|
123
|
+
before = 0;
|
124
|
+
|
125
|
+
}
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
if (p5) {
|
130
|
+
|
117
|
-
before = p
|
131
|
+
before = p5.match(/ /g);
|
118
132
|
|
119
133
|
before = before ? before.length : 0;
|
120
134
|
|
@@ -136,10 +150,10 @@
|
|
136
150
|
|
137
151
|
|
138
152
|
|
153
|
+
event.preventDefault();
|
154
|
+
|
139
155
|
elements['output'].value = replaceSample(elements['input'].value);
|
140
156
|
|
141
|
-
event.preventDefault();
|
142
|
-
|
143
157
|
}
|
144
158
|
|
145
159
|
</script>
|
@@ -198,7 +212,7 @@
|
|
198
212
|
|
199
213
|
&nbsp;
|
200
214
|
|
201
|
-
<p>段落</p&
|
215
|
+
<p>段落</p>
|
202
216
|
|
203
217
|
&nbsp;
|
204
218
|
|
@@ -244,10 +258,20 @@
|
|
244
258
|
|
245
259
|
&nbsp;
|
246
260
|
|
261
|
+
</div></div><div><!-- テキストノードを挟まない場合 --><p>段落</p>
|
262
|
+
|
263
|
+
&nbsp;
|
264
|
+
|
265
|
+
<p>段落</p>
|
266
|
+
|
267
|
+
&nbsp;
|
268
|
+
|
269
|
+
&nbsp;
|
270
|
+
|
271
|
+
&nbsp;
|
272
|
+
|
247
273
|
</div>
|
248
274
|
|
249
|
-
</div>
|
250
|
-
|
251
275
|
</textarea>
|
252
276
|
|
253
277
|
</p>
|
@@ -266,4 +290,12 @@
|
|
266
290
|
|
267
291
|
|
268
292
|
|
293
|
+
### 更新履歴
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
- 2016/06/12 06:36 連続するp要素の2つ目以降のp要素の before-n が期待通りに動作しなかった不具合を修正。before-n における ` ` の合計算出時に要素を乗り越えて記録していた不具合を修正(実質的にはホワイトスペースノードd値がクリアされていたので表面化されていませんでした)。
|
298
|
+
|
299
|
+
|
300
|
+
|
269
301
|
Re: flat さん
|