转义String.replace的$符号

时间:2014-09-23 01:59:07

标签: javascript regex

跟随String.replace行,lossLocation.state $,

替换后删除$符号,

我需要保留$,因为它在变量中使用。

 '{0}'.replace(
         '{0}'
       , 'categories.Country === \'$formData.lossLocation.state$\'.toUpperCase()')

它给了我

"categories.Country === '$formData.lossLocation.state'.toUpperCase()"

预期结果应为

"categories.Country === '$formData.lossLocation.state$'.toUpperCase()"

我尝试了以下操作,但在更换时仍然被删除

state\$

1 个答案:

答案 0 :(得分:2)

正如String.prototype.replace()所述。逃避' $'在替换内容中,您应该使用' $$'而不是' \ $'。

所以构建它的正确方法是

'{0}'.replace('{0}', 
    'categories.Country === \'$formData.lossLocation.state$\'.toUpperCase()'
        .replace(/\$/g, '$$$$')
)