jquery RegExp无法正常工作

时间:2013-03-20 09:33:19

标签: 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]]

需要:data[Company][c_list][1][name_2]

我的代码出了什么问题?

由于

3 个答案:

答案 0 :(得分:3)

字符[]用于创建集合,因此正则表达式中的[c_list]与字符序列[c_list]不匹配,它匹配一个字符这是c_list

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

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

您也可以将正则表达式编写为文字,然后只使用\来转义字符:

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

答案 1 :(得分:1)

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

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

括号已被转义。

答案 2 :(得分:0)

退出正则表达式的括号。