Javascript 正则表达式替换而不解析反向引用

Javascript Regex Replace Without Resolving Backreference

我正在尝试用密码替换字符串中的密码标记 [**PASSWORD**],但遇到包含字符串 $&.

的密码时遇到问题

例如:

var re = new RegExp('(?:\[\*\*PASSWORD\*\*\])', 'g');
'Your temporary password is: [**PASSWORD**]'.replace(re, 'B9z3$&dd');

我希望输出为 Your temporary password is: B9z3$&dd,但 $& 将反向引用解析为 [**PASSWORD**],这使得输出为 Your temporary password is: B9z3[**PASSWORD**]dd

如何防止 Javascript 解析反向引用并简单地按原样插入文本?

谢谢!

您需要将替换字符串中的 $ 转义并加倍:B9z3$$&dd.

这是一个演示:

result = 'Your temporary password is: [**PASSWORD**]'.replace(/\[\*\*PASSWORD\*\*\]/mg, "B9z3$$&dd");

console.log(result);