Skip to content

Commit b938f3f

Browse files
committed
Escape the special regex characters when formatting HTML
1 parent a00d1fa commit b938f3f

File tree

1 file changed

+8
-8
lines changed
  • aztec/src/main/kotlin/org/wordpress/aztec/source

1 file changed

+8
-8
lines changed

aztec/src/main/kotlin/org/wordpress/aztec/source/Format.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ internal object Format {
9595
sb = StringBuffer()
9696
if (m.find()) {
9797
val result = replaceAll(content.substring(m.start(), m.end()), "<br([^>]*)>", "<wp-temp-br$1>")
98-
m.appendReplacement(sb, replace(result, "[\\r\\n\\t]+", ""))
98+
m.appendReplacement(sb, Matcher.quoteReplacement(replace(result, "[\\r\\n\\t]+", "")))
9999
}
100100
m.appendTail(sb)
101101
content = sb.toString()
@@ -143,7 +143,7 @@ internal object Format {
143143
m = p.matcher(content)
144144
sb = StringBuffer()
145145
if (m.find()) {
146-
m.appendReplacement(sb, replace(content.substring(m.start(), m.end()), "[\\r\\n]+", ""))
146+
m.appendReplacement(sb, Matcher.quoteReplacement(replace(content.substring(m.start(), m.end()), "[\\r\\n]+", "")))
147147
}
148148
m.appendTail(sb)
149149
content = sb.toString()
@@ -198,7 +198,7 @@ internal object Format {
198198
m = p.matcher(html)
199199
sb = StringBuffer()
200200
while (m.find()) {
201-
m.appendReplacement(sb, replaceAll(html.substring(m.start(), m.end()), "[\\r\\n]+", ""))
201+
m.appendReplacement(sb, Matcher.quoteReplacement(replaceAll(html.substring(m.start(), m.end()), "[\\r\\n]+", "")))
202202
}
203203
m.appendTail(sb)
204204
html = sb.toString()
@@ -208,7 +208,7 @@ internal object Format {
208208
m = p.matcher(html)
209209
sb = StringBuffer()
210210
while (m.find()) {
211-
m.appendReplacement(sb, replaceAll(html.substring(m.start(), m.end()), "[\\r\\n]+", ""))
211+
m.appendReplacement(sb, Matcher.quoteReplacement(replaceAll(html.substring(m.start(), m.end()), "[\\r\\n]+", "")))
212212
}
213213
m.appendTail(sb)
214214
html = sb.toString()
@@ -231,21 +231,21 @@ internal object Format {
231231
sb = StringBuffer()
232232
while (m.find()) {
233233
// keep existing <br>
234-
m.appendReplacement(sb, replaceAll(html.substring(m.start(), m.end()), "<br([^>]*)>", "<wp-temp-br$1>"))
234+
m.appendReplacement(sb, Matcher.quoteReplacement(replaceAll(html.substring(m.start(), m.end()), "<br([^>]*)>", "<wp-temp-br$1>")))
235235

236236
// no line breaks inside HTML tags
237237
val p2 = Pattern.compile("<[a-zA-Z0-9]+( [^<>]+)?>")
238238
val content = html.substring(m.start(), m.end())
239239
val m2 = p2.matcher(content)
240240
val sb2 = StringBuffer()
241241
while (m2.find()) {
242-
m2.appendReplacement(sb2, replace(content.substring(m2.start(), m2.end()), "[\\r\\n\\t]+", " "))
242+
m2.appendReplacement(sb2, Matcher.quoteReplacement(replace(content.substring(m2.start(), m2.end()), "[\\r\\n\\t]+", " ")))
243243
}
244244
m2.appendTail(sb2)
245-
m.appendReplacement(sb, sb2.toString())
245+
m.appendReplacement(sb, Matcher.quoteReplacement(sb2.toString()))
246246

247247
// convert remaining line breaks to <br>
248-
m.appendReplacement(sb, replaceAll(html.substring(m.start(), m.end()), "\\s*\\n\\s*", "<wp-temp-br />"))
248+
m.appendReplacement(sb, Matcher.quoteReplacement(replaceAll(html.substring(m.start(), m.end()), "\\s*\\n\\s*", "<wp-temp-br />")))
249249
}
250250
m.appendTail(sb)
251251
html = sb.toString()

0 commit comments

Comments
 (0)