Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript/Jquery动态RegExp生成_Javascript_Regex_Dynamic - Fatal编程技术网

JavaScript/Jquery动态RegExp生成

JavaScript/Jquery动态RegExp生成,javascript,regex,dynamic,Javascript,Regex,Dynamic,我已经在这个地方搜索了很多次,我的正则表达式只能工作,但不能动态工作 id\u name是动态拾取的字符串。然后,regexp应该用单个变量替换匹配项,该变量位于“VAL”中。出于某种原因,当我在没有变量的情况下编写regexp时,它会按预期工作。我想我可能会在转换为regexp对象时出错 原始字符串: obj = values.replace(/{name}(.*?){\/name}/, 'igm'); Regexp对象: re = '\/{' + id_name + '}(

我已经在这个地方搜索了很多次,我的正则表达式只能工作,但不能动态工作

id\u name是动态拾取的字符串。然后,regexp应该用单个变量替换匹配项,该变量位于“VAL”中。出于某种原因,当我在没有变量的情况下编写regexp时,它会按预期工作。我想我可能会在转换为regexp对象时出错

原始字符串:

obj = values.replace(/{name}(.*?){\/name}/, 'igm');
Regexp对象:

        re = '\/{' + id_name + '}(.*?){\\/' + id_name + '}\/';
        regexp = new RegExp(re, 'igm');
        obj = values.replace(regexp, vals);

提前谢谢

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

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

不知道这么简单:),它工作得很好!谢谢工作真的很好。我不明白的是,我试图交叉检查它的引用,但什么也看不到:(regexp在我看来仍然是最困难的事情之一)当我将{}替换为%和/%。。。第一次遇到它时,它工作正常,但第二次,它停止替换:`re='%'+id_name+'%(.*?%/'+id_name+'%';regexp=新的regexp(re'igm');values=values.replace(regexp.)`@user1520088:我不知道-可能在
id\u name
中有一些奇怪的东西被识别为regex。我不确定里面是什么。因为它取代了其他一切。就在我将{}替换为%%时,它第二次出现错误。我将id_名称强制写入字符串。即使是硬编码,它也有问题。我必须补充一点,无论它取代的是一个电子邮件页脚。第一部分纯粹是基于文本的,到处都有一个
。第二个具有表格布局。比如
%name%{name}约翰甜甜圈{/name}%/name%
。每当取消选中该选项时,它都会删除%name%部分。工作在第一部分,而不是第二部分(在表中)。是否只删除
%name%
,还是删除其中的所有内容,包括
%name
?介于%name%--%/name%之间的所有内容真的:)