1. 痛点还原:谁没被 "意大利面 HTML" 狠狠坑过?
接手老项目、重构模板、二次开发时,你一定见过这种代码:几百行 HTML 挤在一行、嵌套几十层、标签不闭合、属性乱排序,想改个样式半小时找不到节点。
更可怕的是:在线格式化工具要上传代码,里面藏着业务信息、token、数据字段,上传等于裸奔。手动格式化?手酸眼花还容易改错,效率低到爆炸。
这篇就告诉你:不用服务器、不上传代码、不依赖第三方,纯浏览器原生 API 就能实现工业级 HTML 格式化。
2. 深度拆解:为什么正则不行?DOM 遍历才是正解
很多人写格式化第一步就错:用正则匹配标签。HTML 是上下文敏感语言,正则处理 <script>、<pre>、属性中的 > 必定乱崩。
正确架构只有一种:DOMParser + 递归遍历 + 智能序列化
① 第一步:交给浏览器原生解析(最稳)
js
// 用浏览器内置DOM引擎解析,自动修复残缺标签、错误嵌套
function parseHtml(rawHtml) {
const parser = new DOMParser();
const doc = parser.parseFromString(rawHtml, 'text/html');
return doc.body;
}
② 第二步:递归遍历 DOM 树,按层级缩进
- 区分自闭合标签(img、input、br...)
- 保护
<pre>/<script>/<style>原样输出 - 内联元素不换行,块级元素分层级
- 支持自定义缩进(2 空格 / 4 空格 / Tab)
③ 第三步:属性智能排序(提升可读性)
按 id → class → data-* → 常规属性 → 事件 排序,老代码瞬间规范整洁。
④ 高级保障
- Web Worker 后台运行,不卡页面
- 大文件分片处理,10 万行也流畅
- 模板语法 {%}}/{{}} 智能保护,不破坏业务代码
3. 岱码工具箱实战:1 分钟搞定混乱 HTML
我把这套逻辑做成了纯本地运行的在线工具:
- 粘贴即格式化,代码永不离开你的浏览器
- 自动修复残缺标签、智能缩进、属性排序
- 支持大文件、模板语法、预览对比
- 断网可用,无上报、无上传、无水印
重构老项目、清理模板、整理页面结构,打开即用,比本地 Prettier 更轻量。
4. 90 后开发者思考:好工具应该 "保护开发者"
做工具越久越明白:开发者最需要的不是 "花里胡哨的功能",而是安全、简单、可靠。
HTML 格式化不应该上传代码;解析不应该用正则瞎猜;格式化不应该破坏业务逻辑。
我坚持做100% 本地、零依赖、原生 API的工具,就是希望让每一位开发者:改得快、排错稳、数据安全、不加班、不背锅。
好的工具,应该站在开发者身后,默默把混乱变成秩序。