使用JavaScript replace RegEx从字符串中删除div和所有子元素

使用JavaScript replace RegEx从字符串中删除div和所有子元素,javascript,jquery,html,regex,replace,Javascript,Jquery,Html,Regex,Replace,我有一个HTML块存储在一个名为address\u form的变量中,在这个HTML块中我想删除或替换它的一部分。我要替换的部分是一个ID为address\u container的div 我的正则表达式显然有问题,我正在使用replace函数,因为它不起作用: var tempStr=address\u form.replace('/\.*/','') 我只想替换字符串中的一个字符串。不要这样做,只需获取div的内容并用内容替换该div的父级 所以 既然您已经用jQuery标记了您的问题,那么我

我有一个HTML块存储在一个名为
address\u form
的变量中,在这个HTML块中我想删除或替换它的一部分。我要替换的部分是一个ID为
address\u container
的div

我的正则表达式显然有问题,我正在使用replace函数,因为它不起作用:

var tempStr=address\u form.replace('/\.*/','')


我只想替换字符串中的一个字符串。

不要这样做,只需获取div的内容并用内容替换该div的父级

所以


既然您已经用jQuery标记了您的问题,那么我建议您使用jQuery来完成这项任务。比如:

var tempStr = jQuery(address_from).remove('#address_container').html();

你的正则表达式错了。改用这个:

address_form.replace(/<div id=["-]#address_container["-]>.*<\/div>/,'');
address\u form.replace(/.*/,'');
来自@RidgeRunner

正确匹配DIV元素(其本身可能包含其他DIV 元素),使用单个JavaScript正则表达式是不可能的。这是 因为js正则表达式引擎不支持匹配嵌套 结构


请发布HTMLYou的代码块,你至少应该删除包装正则表达式的单引号,因为它将是一个字符串而不是正则表达式:-),如果你想用JavaScript修改HTML代码,为什么不将其插入文档外部的元素中,并通过DOM方法进行修改?@Sirko的想法是一样的。如果您需要将内容作为字符串,您可以通过说出outerhtmlco来获得内容,并正确匹配
DIV
元素(该元素本身可能包含其他
DIV
元素),使用单个JavaScript正则表达式是不可能的。这是因为js正则表达式引擎不支持匹配的嵌套结构。+1-我就是这么做的,但是我对Twilight系列的了解比正则表达式多。我从未看过《暮光之城》系列的任何一部。+1,这才是真正的解决方案。不过,我会在最后删除.html()并使用jQuery对象。@Simon,这不是一个解决方案,但它是对我提出的问题的回答。你并没有真正提出问题,只是陈述了一个问题。你的问题的解决方案是Brian Ball发布的解决方案。为了澄清这一点,我投票否决了你,因为如果有人与你处于相同的位置,在这里寻找解决方案,他会发现似乎没有解决方案,而实际上有解决方案。@Simon不同意。我尝试了Brian Ball的解决方案,但效果不太好,而且我确实要求RidgeRunner添加答案。所以你只选择“不可能”,而不是尝试正确地实现Brian Ball的代码?如果你能发布你的“地址表单”的确切字符串,找出Brian的代码在第一次尝试时不起作用的原因,可能会有所帮助。。。
address_form.replace(/<div id=["-]#address_container["-]>.*<\/div>/,'');