我需要删除HTML内容。其中一些内容位于评论之间,如下所示:
<div>Some content</div>
<!-- Begin: Modal View -->
<div class="foo">
<div> Modal View</div>
<div>...</div>
</div>
<!-- End: Modal view -->
<div>Some other content</div>
我想选择以正则表达式开头和结尾的内容 - 包括注释。删除后,输出将为:
<div>Some content</div>
<div>Some other content</div>
我需要的只是regEx。无需说明如何获取HTML。假设HTML是带有.replaceMethod的字符串对象。
谢谢!
答案 0 :(得分:0)
如果您知道评论的内容,那么应该这样做。
s/<!-- Begin: Modal View -->.*?<!-- End: Modal view -->//sg
注意询问标记。这场比赛非贪婪。
否则比赛将从第一个公开评论继续到最后一个结束评论,从中间剥离全部。
答案 1 :(得分:-1)
使用以下正则表达式:
/<!--\s*begin:\s*(.+)\s*-->[\s\S]*<!--\s*end:\s*\1\s*-->/gi
这将从({包括)<!-- begin: label -->
到(包括)<!-- end: label -->
中选择所有内容。
要删除这些事件,只需执行以下操作:
var pattern = /<!--\s*begin:\s*(.+)\s*-->[\s\S]*<!--\s*end:\s*\1\s*-->/gi;
var input= ".....";
var stripped = input.replace(pattern, "");
答案 2 :(得分:-1)
您可以解析HTML以查找评论。为此,请参阅:http://www.bennadel.com/blog/2607-finding-html-comment-nodes-in-the-dom-using-treewalker.htm
否则,如果您没有寻找完全可靠且可维护的解决方案:
var my_html= document.querySelector("#my_html");
my_html.innerHTML= my_html.innerHTML.replace(/<\!--\s*Begin\:(.*?)\s*-->[\s\S]*<\!--\s*End\:\1\s*-->/gmi,"")
&#13;
<div id="my_html">
<div>Some content</div>
<!-- Begin: Modal View -->
<div class="foo">
<div> Modal View</div>
<div>...</div>
</div>
<!-- End: Modal view -->
<div>Some other content</div>
</div>
&#13;