Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-在String.prototype.replace使用的字符串中转义美元符号的更好方法_Javascript_Regex_Replace_Escaping - Fatal编程技术网

javascript-在String.prototype.replace使用的字符串中转义美元符号的更好方法

javascript-在String.prototype.replace使用的字符串中转义美元符号的更好方法,javascript,regex,replace,escaping,Javascript,Regex,Replace,Escaping,我想用另一个字符串替换一个字符串。我发现当replaceValue包含“$”时,替换将失败。所以我试图先通过“$$”来逃避“$$”。代码如下所示: var str = ..., reg = ...; function replaceString(replaceValue) { str.replace(reg, replaceValue.replace(/\$/g, '$$$$')); } 但我觉得这很难看,因为我需要写4个美元符号 还有其他我需要逃避的角色吗?还有更好的方法吗?不幸的是,你

我想用另一个字符串替换一个字符串。我发现当replaceValue包含
“$”
时,替换将失败。所以我试图先通过
“$$”
来逃避
“$$”
。代码如下所示:

var str = ..., reg = ...;
function replaceString(replaceValue) {
  str.replace(reg, replaceValue.replace(/\$/g, '$$$$'));
}
但我觉得这很难看,因为我需要写4个美元符号


还有其他我需要逃避的角色吗?还有更好的方法吗?

不幸的是,你对此无能为力。
这就是JavaScript如何处理正则表达式

下面是一篇好文章,列出了您应该注意的所有替换模式:

转义替换字符串的方法是正确的

根据第15.5.4.11节String.prototype.replace of,所有特殊替换序列以
$
$&
$`
$'
$n
$nn
)和
$
开头,在替换中指定一个
$

因此,如果替换文本是按字面意思处理的,那么使用double
$
对所有
$
进行转义就足够了,就像您现在所做的那样


就我所知,没有其他简洁的方法来进行替换。

有一种方法可以调用
replace
,使我们不必担心逃避任何事情

var str = ..., reg = ...;
function replaceString(replaceValue) {
  return str.replace(reg, function () { return replaceValue });
}

这篇文章没有说要避免他们。相反,它们是替换字符串的语法。Correct。但是请看OP的问题:
还有其他需要转义的字符吗?
。这篇文章提供了他应该知道的模式。我认为你应该将措辞改为:“……所有替换模式的列表,你的方法很好地避开了它们”@nhahdh,按我的方式编辑。谢谢你的意见!