How to format/tidy/beautify in JavaScript

I use this method to format HTML. Simple, but does the job:

function format(html) {
    var tab = '\t';
    var result="";
    var indent="";

    html.split(/>\s*</).forEach(function(element) {
        if (element.match( /^\/\w/ )) {
            indent = indent.substring(tab.length);
        }

        result += indent + '<' + element + '>\r\n';

        if (element.match( /^<?\w[^>]*[^\/]$/ ) && !element.startsWith("input")  ) { 
            indent += tab;              
        }
    });

    return result.substring(1, result.length-3);
}

Leave a Comment