function compresshtml(html) { // 去除注释 html = html.replace(/&lt;!--[\s\S]?-->/g, ""); // 去除多余空缺 html = html.replace(/\s+/g, " "); // 去除标签之间空格 html = html.replace(/>\s+</g, "><"); return html.trim();}

该函数首先利用正则表达式去除 HTML 中的注释。
然后,它利用另一个正则表达式去除 HTML 中的多余空格。
末了,它利用另一个正则表达式去除标签之间的空格。

为了测试该函数,您可以创建一个 HTML 文件,并在个中添加一些冗余的空格和注释。
例如:

<!DOCTYPE html><html> <head> <title>My Website</title> </head> <body> <!-- This is a comment --> <h1> Welcome to my website! </h1> <p> This is some text. </p> </body></html>

然后,您可以在Node.JS中利用以下代码将 HTML 文件加载为字符串并压缩它:

php压缩html如何用 JS 紧缩 HTML  AJAX

// 加载 HTML 文件const fs = require("fs");const html = fs.readFileSync("index.html", "utf8");// 压缩 HTMLconst compressedHtml = compressHTML(html);console.log(compressedHtml);

输出是一个压缩后的 HTML 字符串,个中不包含注释或冗余空格。

或者直接在IE中测试,代码如下:

function compressHTML(html) { // 去除注释 html = html.replace(/<!--[\s\S]?-->/g, ""); // 去除多余空缺 html = html.replace(/\s+/g, " "); // 去除标签之间空格 html = html.replace(/>\s+</g, "><"); return html.trim();}var html =`<!DOCTYPE html><html> <head> <title>My Website</title> </head> <body> <!-- This is a comment --> <h1> Welcome to my website! </h1> <p> This is some text. </p> </body></html>`;console.log(compressHTML(html));

运行效果: