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=“\\$”+计数器代码>