如何在JavaScript中格式化/整理/美化HTML? I have tried doing a search/replace for angle brackets (<
, >
) and indenting accordingly.但它當然不會考慮HTML中的JS或CSS等。如何在JavaScript中格式化/整理/美化
我想這樣做的原因是我做了一個內容編輯器(CMS),它具有所見即所得和源代碼視圖。所見即所得編輯器編寫的代碼通常是單行的問題。所以我想要一個JavaScript,可以根據需要將其格式化爲更具可讀性的形式。
這裏是我到目前爲止有:
function getIndent(level) {
var result = '',
i = level * 4;
if (level < 0) {
throw "Level is below 0";
}
while (i--) {
result += ' ';
}
return result;
}
function style_html(html) {
html = html.trim();
var result = '',
indentLevel = 0,
tokens = html.split(/</);
for (var i = 0, l = tokens.length; i < l; i++) {
var parts = tokens[i].split(/>/);
if (parts.length === 2) {
if (tokens[i][0] === '/') {
indentLevel--;
}
result += getIndent(indentLevel);
if (tokens[i][0] !== '/') {
indentLevel++;
}
if (i > 0) {
result += '<';
}
result += parts[0].trim() + ">\n";
if (parts[1].trim() !== '') {
result += getIndent(indentLevel) + parts[1].trim().replace(/\s+/g, ' ') + "\n";
}
if (parts[0].match(/^(img|hr|br)/)) {
indentLevel--;
}
} else {
result += getIndent(indentLevel) + parts[0] + "\n";
}
}
return result;
}
有時是最好的提問/回答是題外話。 – NilsB 2015-07-23 12:44:40
@NilsB垃圾這是關於主題,實際上它已被關閉作爲脫離主題,然後再次打開 – Petah 2015-07-23 20:34:49
[這裏是超簡單的HTML格式化在JavaScript](https://jsfiddle.net/buksy/rxucg1gd/) – Buksy 2016-05-31 08:21:03