正则表达式从HTML中删除行注释

时间:2017-03-06 17:50:08

标签: html css regex comments

我正在尝试从html&删除不必要的行注释CSS。我找到了一个正则表达式来删除这些评论:

/* Write your comments here */

但我正在寻找的是像这样的多行评论的正则表达式:

<!-- Write your comments here 
Second line
third Line
-->

目前使用此代码删除单行注释:

<!--[^\[].*-->

非常感谢任何帮助

1 个答案:

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