替换为Javascript中的$$

替换为Javascript中的$$,javascript,regex,Javascript,Regex,我想用javascript中的$$替换出现的所有特定字符串 但是,当我尝试替换时,它只替换单个字符 例如,此示例输出$sd。正确的输出应该是$$sd 我也试过了 text =text.replace(/sf/gi,"$$"); 由于$是为正则表达式保留的,因此在$上加倍将不会达到预期目的 text = "sfsd"; text = text.replace(/sf/gi,"$$$$"); document.getElementById("x").innerHTML = text; 由于$是

我想用javascript中的$$替换出现的所有特定字符串

但是,当我尝试替换时,它只替换单个字符

例如,此示例输出
$sd
。正确的输出应该是
$$sd

我也试过了

text =text.replace(/sf/gi,"$$");

由于
$
是为正则表达式保留的,因此在
$
上加倍将不会达到预期目的

text = "sfsd";
text = text.replace(/sf/gi,"$$$$");
document.getElementById("x").innerHTML = text;

由于
$
是为正则表达式保留的,因此在
$
上加倍将不会达到预期目的

text = "sfsd";
text = text.replace(/sf/gi,"$$$$");
document.getElementById("x").innerHTML = text;

美元符号有一个特殊的含义,它意味着当与一个数字(如$1)结合使用时,捕获组的数量只是$的文字,第一个$将扮演转义字符的角色。将$$$用于$$

更多信息:

美元符号有一个特殊的含义,它意味着当与一个数字(如$1)结合使用时捕获的组数。$$只是$的文字,第一个$将扮演转义字符的角色。将$$$用于$$

更多信息:
$
是保留的,就像
$&
是保留的一样,因此请使用其中三种:

text=text.replace(/sf/gi,"$$$");

$
是保留的,就像
$&
是保留的一样,因此请使用其中三种:

text=text.replace(/sf/gi,"$$$");

尝试将您的html设置为:

<div id="x">sf sd</div>
<div id="wmd-input"></div>


正如@Mr polywhill所指出的,您需要使用另一个
$
来避开
$
,并获得一个文字符号
$

尝试将您的html设置为:

<div id="x">sf sd</div>
<div id="wmd-input"></div>


正如@Mr polywhill所指出的,您需要使用另一个
$
来转义
$
,并获得一个字面符号
$

这是完全荒谬的,当然XD反斜杠会转义所有其他符号,包括在正则表达式模式中。但是,是的,这是正确的+1查看Java的
printf()
:您必须键入
%
两次才能真正打印它。@NiettheDarkAbsol:
\$
在字符串值传递给
替换之前解析。由于
\$
是一个无效的转义序列,相当于
$
,因此函数接收的所有字符串值都是
$
。它对此无能为力。这是完全荒谬的,当然XD反斜杠逃避了其他一切,包括在正则表达式模式中。但是,是的,这是正确的+1查看Java的
printf()
:您必须键入
%
两次才能真正打印它。@NiettheDarkAbsol:
\$
在字符串值传递给
替换之前解析。由于
\$
是一个无效的转义序列,相当于
$
,因此函数接收的所有字符串值都是
$
。实际上,只保留了
$
后跟其他字符的某些模式。这包括
$
$&
。这就是为什么这个解决方案有效。单个/唯一的
$
没有特定含义(按字面理解)。很好@费利克斯克林谢谢,我将编辑我的答案…实际上,只保留了
$
的某些模式,后跟其他字符。这包括
$
$&
。这就是为什么这个解决方案有效。单个/唯一的
$
没有特定含义(按字面理解)。很好@谢谢,我将编辑我的答案。。。