KT-50173 Fix Regex.escapeReplacement function in JS

This commit is contained in:
Ilya Gorbunov
2021-12-11 11:11:34 +03:00
committed by Space
parent 81c805a754
commit a829a6743d
2 changed files with 5 additions and 2 deletions
+1 -1
View File
@@ -318,7 +318,7 @@ public actual class Regex actual constructor(pattern: String, options: Set<Regex
public actual fun escapeReplacement(literal: String): String = literal.nativeReplace(replacementEscape, "\\$&")
private val patternEscape = RegExp("""[\\^$*+?.()|[\]{}]""", "g")
private val replacementEscape = RegExp("""[\$]""", "g")
private val replacementEscape = RegExp("""[\\$]""", "g")
internal fun nativeEscapeReplacement(literal: String): String = literal.nativeReplace(nativeReplacementEscape, "$$$$")
private val nativeReplacementEscape = RegExp("""\$""", "g")
+4 -1
View File
@@ -263,7 +263,10 @@ class RegexTest {
// inserts the first captured group
assertEquals("(123)-(456)", pattern.replace(input, "($1)"))
assertEquals("$&-$&", pattern.replace(input, Regex.escapeReplacement("$&")))
for (r in listOf("$&", "\\$", "\\ $", "$\\")) {
assertEquals("$r-$r", pattern.replace(input, Regex.escapeReplacement(r)))
}
assertEquals("X-456", pattern.replaceFirst(input, "X"))
val longInput = "0123456789ABC"