Literal dollar sign in a regular expression

asp.net, expression, javascript, replace

Solution

`$'` has a special meaning in the replacement string when using JS regular expressions: it inserts the portion of the string that follows the matched substring. To get a literal dollar sign in the replacement string, use `$$`.

See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace.

Problem

I am working with Canada (fr-CA) locale and trying to do following: ``` var str = "<dataset >{1}</dataset>"; var temp = "<set Cost x = '1,8M $' />"; str = str.replace(/\{1\}/g, temp); ``` OUTPUT: ``` "<dataset ><set Cost x = '1,8M </dataset>" /></dataset>" ``` DESIRED OUTPUT: ``` "<dataset ><set Cost x = '1,8M $'" /></dataset>" ``` replace function is misunderstanding `$`' from `'1,8M $'` as an expression and hence repeating in the output. Any ideas/workaround? Thank you for your time.

Original source

Related problems