使用以下代码:
var x = 'foo';
console.log(x.replace(x, "\\$&"));
输出为“\foo”,如下所示:http://jsfiddle.net/mPKEx/
为什么不呢
'\\$&"?
我用“\$&”替换了x的全部,这只是一个计划旧的字符串,所以为什么当函数的第二个arg除了被替换为...时不应该做任何事情的时候,string.replace还是做了一些疯狂的替换...
最佳答案
$&是Javascript字符串替换中的特殊引用。它将指向匹配的字符串。
$$-插入“$”
$&-引用当前模式匹配项的整个文本。
$`-指当前模式匹配项左侧的文本。
$'-指当前模式匹配项右边的文本。
$ n或$ nn-其中n或nn是十进制数字,插入第n个括号
子匹配字符串,前提是第一个参数是RegExp对象。
(Reference)
关于javascript - 奇怪的JavaScript字符串用$&替换行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12311192/