当我尝试使用$$
替换replace()
时,它将仅替换为单$
。
var abc = "T"
abc.replace("T","A$$B")
"A$B"
我要求输出为"A$$B"
答案 0 :(得分:2)
首先,该语言称为JavaScript。
其次,您必须使用另一个$
“转义”每个文字$
,因为它们通常用于反向引用子匹配:
'this is a test'.replace(/(.)s/g, '_$1s');
//=> 'thi_is _is a t_est'
请注意,替换字符串中的$1
将替换为原始正则表达式(第一个捕获组)中匹配的(.)
。
所以,你会使用:
abc.replace('T', 'A$$$$B');
两个$
,每个都被另一个$
转义。
如果您需要自动执行此操作(即您已有一个带替换字符串的变量),您可以使用:
var replStr = 'A$$B';
abc.replace('T', replStr.replace(/\$/g, '$$$$')); // replace all $ with $$
答案 1 :(得分:2)
来自replace
的文档,$$
用于插入$
。
要插入$
两个$,请使用$$$
abc.replace("T", "A$$$B"); `$$` ==> `$` and `$` ==> `$`
或者,您也可以使用$$$$
abc.replace("T", "A$$$$");