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);
我正在尝试用密码替换字符串中的密码标记 [**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);