javascript - Escape $ in regex replacement string -
javascript - Escape $ in regex replacement string -
i want turn string dkfj-dkfj-sflj
dkfj-woop$dkfj-sflj
.
here's i've tried:
var my_string = "dkfj-dkfj-sflj"; var regex = new regexp("(\\w+)-(\\w+)-(\\w+)", "g"); console.log(my_string.replace(regex, "$1$woop[\$$2]$3");
and result is: dkfj-woop$2-sflj
. because "$" in front end of "$2" capture group, messes capture group.
assuming want construction of regex , capture grouping string remain same, what's right way escape "$" works?
that isn't how escape $
replace
. backslash escaping works @ parser level, functions replace
cannot give special meaning new escape sequences \$
because don't see \$
. string "\$"
equivalent string "$"
, both produce same string. if wanted pass backslash , dollar sign function, it's backslash requires escaping: "\\$"
.
regardless, replace
expects escape $
$$
. need "$1$woop[$$$2]$3"
; $$
literal $
, , $2
capture group.
read specifying string parameter in replace
docs.
javascript regex
Comments
Post a Comment