Javascript 使用RegExp函数替换包含反斜杠的子字符串

Javascript 使用RegExp函数替换包含反斜杠的子字符串,javascript,regex,Javascript,Regex,我试图写一个函数,用缩写替换某些单词。例如,我有一个字符串: str="Calculate $2\\cdot 2$" 我想替换其中的 "\\cdot" 与 我的代码如下所示: str = str.replace(RegExp("\\cdot",'g'),"*"); 结果是 str = "Calculate $2\\cdot 2$" 我需要使用RegExp函数,因为我有一个完整的单词列表,我想用缩写替换。我知道 str = str.replace(/\\cdot/g),"*"); 工作

我试图写一个函数,用缩写替换某些单词。例如,我有一个字符串:

str="Calculate $2\\cdot 2$"
我想替换其中的

"\\cdot" 

我的代码如下所示:

str = str.replace(RegExp("\\cdot",'g'),"*");
结果是

str = "Calculate $2\\cdot 2$"
我需要使用RegExp函数,因为我有一个完整的单词列表,我想用缩写替换。我知道

str = str.replace(/\\cdot/g),"*");

工作。但是我不明白为什么RegExp不这样做。

在定义字符串时需要转义斜杠字符,再次转义正则表达式。如果只在字符串中转义斜杠一次,则生成的正则表达式如下:
\cdot
。如果直接使用斜杠符号(
/regex/
)定义正则表达式,则只需转义一次,因为没有字符串

var str=“计算$2\\cdot 2$”;
str=str.replace(RegExp(“\\\\cdot“,'g'),“*”);

console.log(str)谢谢!就这样!您现在是否知道是否有不需要使用额外反斜杠的方法?问题是我有一长串的单词,我想用缩写来代替。其中一些有反斜杠。我可以将列表中的单词更改为具有额外的反斜杠,但我也希望从缩写返回到较长的单词,然后它就不起作用了。这里的问题是,正则表达式需要对所有控制字符(如
^
|
`
$`等)使用反斜杠,如果您的某些单词包含这些字符中的任何一个,您必须注意这一点。我将用扩展名更新答案。
str = str.replace(/\\cdot/g),"*");