2017-03-06 4 views
0

Ich versuche, unnötige Linie Kommentare aus html & CSS zu entfernen. Ich habe einen regulären Ausdruck gefunden zu entfernen Kommentare wie diese:Regex Streifen Linie Kommentare von HTML

/* Write your comments here */ 

aber was Im suchend eine Regex Mehrzeilige Kommentare wie diese:

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

Derzeit diesen Code Mit Hilfe der einzelne Zeile entfernen Kommentare:

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

Jede Hilfe wäre sehr

+0

Danke, das ist genau das, was ich suchte. –

Antwort

0

besser zu generieren ein klar sein, temporäres DOM-Element und Iteration über alle Knoten entfernen rekursiv die Kommentarknoten.

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