Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 创建正则表达式时不需要的斜杠_Javascript_Regex - Fatal编程技术网

Javascript 创建正则表达式时不需要的斜杠

Javascript 创建正则表达式时不需要的斜杠,javascript,regex,Javascript,Regex,我想在正则表达式中使用一个变量,但它会在输出中创建一个额外的/: var counter = 0, replace = "/\$" + counter; regex = new RegExp(replace); console.log(regex); 输出是/\/$0/,而我期望的是/\$0/,您能告诉我它有什么问题吗?前面的/被转义,因为/字符必须在由/分隔的正则表达式中转义(这是您登录时控制台表达正则表达式的方式) \之前的$将丢失,因为\在JavaScript字符

我想在正则表达式中使用一个变量,但它会在输出中创建一个额外的
/

var counter = 0,
    replace = "/\$" + counter;
    regex = new RegExp(replace);
    console.log(regex);

输出是
/\/$0/
,而我期望的是
/\$0/
,您能告诉我它有什么问题吗?

前面的
/
被转义,因为
/
字符必须在由
/
分隔的正则表达式中转义(这是您登录时控制台表达正则表达式的方式)


\
之前的
$
将丢失,因为
\
在JavaScript字符串和正则表达式中都是转义字符。记录
replace
以查看
\$
被解析为
$
。如果希望将
\
本身保存到正则表达式中,则需要对其进行转义。

在正则表达式字符串生成之前将
/
添加到正则表达式字符串中(生成添加
/
),并且需要转义反斜杠:

var计数器=0;
var replace=“\\$”+计数器;
var regex=新的RegExp(替换);

console.log(regex)/
添加到
replace
变量中呢?您似乎想要
replace=“\\$”+计数器