JavaScript / Jquery动态RegExp生成

时间:2012-07-12 08:37:08

标签: javascript regex dynamic

我经常搜索这个地方,我坚持认为我的正则表达式有效,但不是动态的。

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);

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果要通过构造函数构造正则表达式,则不需要/,也不需要转义该字符:

re = '{' + id_name + '}(.*?){/' + id_name + '}';