Javascript jquery RegExp没有像我预期的那样工作

Javascript jquery RegExp没有像我预期的那样工作,javascript,regex,Javascript,Regex,问题是什么,通过一个例子解释: form = 'some other [1][2] data ... data[Company][c_list][2][name_2] ... some other data'; form.replace(new RegExp('[c_list][2]', 'g'), '[c_list][1]'); 获取:data[Company][c_list][2][name[c_list][1] 需要:数据[公司][c_列表][1][name_2] 我的代码有什么问题 感

问题是什么,通过一个例子解释:

form = 'some other [1][2] data ... data[Company][c_list][2][name_2] ... some other data';
form.replace(new RegExp('[c_list][2]', 'g'), '[c_list][1]');
获取:
data[Company][c_list][2][name[c_list][1]

需要:
数据[公司][c_列表][1][name_2]

我的代码有什么问题


感谢

在正则表达式中,
[…]
具有定义字符类的特殊含义。我想你在找我

form.replace(new RegExp('\[c_list\]\[2\]', 'g'), '[c_list][1]');

括号已转义。

在正则表达式中,
[…]
具有定义字符类的特殊含义。我想你在找我

form.replace(new RegExp('\[c_list\]\[2\]', 'g'), '[c_list][1]');

转义括号。

转义regexp的括号。

转义regexp的括号。

字符
[
]
用于创建一个集合,因此正则表达式中的
[c_list]
与字符序列
[c_list]
不匹配,它匹配一个字符,即
c
l
i
s
t

对表达式中的字符
[
]
进行转义。当您以字符串形式编写模式时,需要使用
\\
\
放入模式中:

form.replace(new RegExp('\\[c_list\\]\\[2\\]', 'g'), '[c_list][1]');
也可以将正则表达式编写为文本,然后只使用
\
转义字符:

form.replace(/\[c_list\]\[2\]/g, '[c_list][1]');

字符
[
]
用于组成一个集合,因此正则表达式中的
[c_-list]
与字符序列不匹配
[c_-list]
,它匹配一个字符,即
c
l
i
s
t

对表达式中的字符
[
]
进行转义。当您以字符串形式编写模式时,需要使用
\\
\
放入模式中:

form.replace(new RegExp('\\[c_list\\]\\[2\\]', 'g'), '[c_list][1]');
也可以将正则表达式编写为文本,然后只使用
\
转义字符:

form.replace(/\[c_list\]\[2\]/g, '[c_list][1]');

我在这里没有看到jquery,只有好的旧Javascript。这是普通Javascript。没有所谓的jquery正则表达式。我在这里没有看到jquery,只有好的旧Javascript。这是普通Javascript。没有所谓的jquery正则表达式。一个反斜杠转义字符串中的字符。你需要使用“\\”在字符串中加反斜杠,以便在模式中转义字符。是的,我自己从来没有使用过
new RegExp()
,所以直到看到你的答案,我才意识到这一点,我投了赞成票。快速元问题,因为你是一个217k的超级忍者:a我可以纠正我的答案,给你的答案打分,还是我应该删除我的答案?一个反斜杠将转义字符串中的字符。你需要使用“\\”在字符串中加反斜杠,以便在模式中转义字符。是的,我自己从来没有使用过
new RegExp()
,所以直到看到你的答案,我才意识到这一点,我投了赞成票。快速元问题,因为你是一个217k的SO忍者:a我应该纠正我的答案,给你的答案打分,还是我应该删除我的答案?