为什么一个$消失了



let str = '$$double_dollars$$'
console.log(str.replace('$$double_dollars$$', '$$no_double_dollars$$'));
// => $no_double_dollars$
// expected $$no_double_dollars$$

为什么会发生这种情况?如何解决此错误?

根据String.prototype.replace的MDN文档(如@Alex所述),有相应评估的特殊模式列表,其中一个是您使用的。P>

特殊模式如下:

  • $$插入$

有关特殊模式的完整列表,请参见MDN文档。

@h.h.figueiredo发表了评论,您可以逃脱美元符号或遵循此答案之后秒发布的答案之一。

请参阅:mdn -string.prototype.replace#将函数指定为参数

替换字符串可以包括以下特殊替换模式:

图案插入$$插入" $"。$&插入匹配的子字符串。$`插入匹配的子字符串之前的字符串部分。$'插入匹配的子字符串之后的字符串部分。$ n其中n是一个正整数小于100,插入了第n个括号          submatch字符串,前提是第一个参数是regexp对象。          请注意,这是1个索引。

let str = '$$double_dollars$$'
console.log(str.replace('$$double_dollars$$', '$$$$yes_double_dollars$$$$'));
// => $$yes_double_dollars$$

请参阅将替换字符串传递给replace的文档。

$是一个特殊的角色。要表达字面的$,请使用$$

let str = '$$double_dollars$$'
console.log(str.replace('$$double_dollars$$', '$$$$result$$$$'));

相关内容

最新更新