could we make this iterative rather than recursive? i.e. 

    while(newHtml !== html) {
        html = newHtml;
        newHtml = html.replace(/(.*)<\/[^>]*>$/i, function(match, p1){ return p1 }); 
    }