问题
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.
回答1:
$' 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.
回答2:
Could you just use the ascii code for dollar sign? $
来源:https://stackoverflow.com/questions/18113622/literal-dollar-sign-in-a-regular-expression