出了什么问题,如示例所示:
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]');
获取:数据[公司][c_list][2][名称[c_list][1]]
需要:数据[公司][c_list][1][name_2]
我的代码有什么问题吗?
谢谢
最佳答案
字符[
和]
用于组成一个集合,因此正则表达式中的[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]');
关于javascript - jquery RegExp 没有按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519757/