我已经简化了我遇到的问题。
如果我在 Chrome 中执行以下代码,我会得到一个奇怪的行为:
var a = "$&";
var b = "aba";
var c = b.replace(/a/, a);
console.log(c); // expected output is: "$&b$&"
// but output is: "aba"
但是如果我执行以下代码,我会得到预期的输出
var a = "c";
var b = "aba";
var c = b.replace(/a/, a);
console.log(c); // expected output is: "cbc"
// and output is: "cbc"
任何想法如何解决这个问题?
这是一个错误吗?
我是否必须以某种方式转义变量 a 中的字符串?