javascript - jquery RegExp 没有按我的预期工作

标签 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]');

获取:数据[公司][c_list][2][名称[c_list][1]]

需要:数据[公司][c_list][1][name_2]

我的代码有什么问题吗?

谢谢

最佳答案

字符[]用于组成一个集合,因此正则表达式中的[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]');

关于javascript - jquery RegExp 没有按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15519757/

相关文章:

html - 使用 VBA 从谷歌翻译中提取 div 的内容

java - 正则表达式从忽略现有标签的 HTML 字符串中删除大于 > 和小于 < 的字符

javascript - 如何在fabricjs中获取缩放后的图像数据

javascript - 如何使用 JSPM 为已导入的库导入其他插件?

javascript - 连接 unicode 和变量

javascript - Openfire 在一天后删除 pubsub 节点(不是在服务器重启或删除缓存后)

javascript - 调用 http ://url from https://Page

java - 创建一个在字符串开头没有两个字符匹配的正则表达式。

python - 正则表达式不匹配

java - 正向lookbehind正则表达式明显的最大长度