我正在尝试从html&删除不必要的行注释CSS。我找到了一个正则表达式来删除这些评论:
/* Write your comments here */
但我正在寻找的是像这样的多行评论的正则表达式:
<!-- Write your comments here
Second line
third Line
-->
目前使用此代码删除单行注释:
<!--[^\[].*-->
非常感谢任何帮助
答案 0 :(得分:0)
最好生成一个临时DOM元素,并以递归方式迭代所有节点,删除注释节点。
var str = `
<div>
test
<!-- test comment -->
<!-- test comment -->
test
<!--
test comment
multiline
-->
</div>`;
// generate div element
var temp = document.createElement('div');
// set HTML content
temp.innerHTML = str;
function removeEle(e) {
// convert child nodes into array
Array.from(e.childNodes)
// iterate over nodes
.forEach(function(ele) {
// if node type is comment then remove it
if (ele.nodeType === 8) e.removeChild(ele);
// if node is an element then call it recursively
else if (ele.nodeType === 1) removeEle(ele);
})
}
removeEle(temp);
console.log(temp.innerHTML);