Javascript 正在为String.replace转义$sign

Javascript 正在为String.replace转义$sign,javascript,regex,Javascript,Regex,在下面的String.replace行中,lossLocation.state$ 更换后,$符号将被删除 我需要保留$,因为它在变量中使用 '{0}'.replace( '{0}' , 'categories.Country === \'$formData.lossLocation.state$\'.toUpperCase()') 它给了我 "categories.Country === '$formData.lossLocation.state'.toUpp

在下面的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\$
正如它在书中所说的那样。要在替换内容中转义“$”,应使用“$$”而不是“\$”

因此,一个正确的构建方法是

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

是啊,似乎是相关的问题。以后可能会关上