我经常搜索这个地方,我坚持认为我的正则表达式有效,但不是动态的。
id_name 是动态选取的字符串。然后,regexp应该用一个var替换匹配,这个var在“vals”中。出于某种原因,当我在没有变量的情况下编写正则表达式时,它按预期工作。我想我可能会在转换为regexp对象时出错。
原始字符串:
obj = values.replace(/{name}(.*?){\/name}/, 'igm');
Regexp对象:
re = '\/{' + id_name + '}(.*?){\\/' + id_name + '}\/';
regexp = new RegExp(re, 'igm');
obj = values.replace(regexp, vals);
提前致谢!
答案 0 :(得分:1)
如果要通过构造函数构造正则表达式,则不需要/
,也不需要转义该字符:
re = '{' + id_name + '}(.*?){/' + id_name + '}';