开发者工具箱

开发者常用的在线文本工具

在浏览器中快速比较、转换、预览与统计文本。

文本处理

选择一个工具

6 个工具

文本里的坑大多是看不见的字符,所以要挑那个能把差异摆给你看的工具。

这里的六个工具干净地分成三类活儿:比较两份文本、按渲染效果预览标记、以及按明确规则转换文本。被跳过的往往正是「规则」这一环。区不区分大小写、首尾空白算不算、重复项要不要合并、换行符到底是什么,每一条都会改变结果,而它们在输入里全都看不见。

比较:文本比较与列表对比

文本比较与差异检查是有序的。它回答的是「同一份东西的两个版本之间改了什么」,粒度可以是字符、单词或行,位置本身就是答案的一部分。部署前后的配置文件、两次 API 响应、别人改过却没说改了哪句的段落,都该用它。

列表对比是集合式的。顺序和位置都不重要,它回答的是「哪些条目两边都有、哪些只在一边」。两份用户标识导出、一份代理清单对照一份已知可用清单、预发与生产的特性开关,都该用它。拿差异工具去问这种问题,只会得到一屏噪音。

预览:Markdown 预览与 HTML 预览

Markdown 在线预览把 Markdown 渲染出来,让你边写边看结构。HTML 在线预览则在受限沙箱里真正运行 HTML,让你不必部署就能看到一个片段。前者面向写作,后者面向查看别人给你的标记。

两种预览都不是承诺。Markdown 是一个方言家族,表格、脚注和内嵌 HTML 的支持程度,在这个渲染器与你的 CMS 或静态站点生成器之间并不一致。HTML 沙箱有意屏蔽了真实页面才有的能力,这让它安全,同时也让它的渲染并不完整。把两者当作阅读辅助,别当作安全扫描或浏览器兼容性检查。

转换:字符串转义与文本工作台

字符串转义与反转义一次只应用一套规则:JSON、JavaScript、HTML 或 URL。选与目的地解析器匹配的那一套,并当心重复转义——一个已经做过 JSON 转义的值再转义一次,到达时里面会多出字面量反斜杠,这是这个工具最常见的误用方式。

文本工作台是通用工作区,负责大小写转换、排序、去重和统计。在相信那些数字之前,先把规则定清楚。CRLF 与 LF 是经典的静默故障:两份看起来一模一样的文件会逐行不同;而「忽略行尾空白」的排序和「不忽略」的排序,是两种不同的排序。

在采信结果之前

  • 按问题选差异粒度:配置文件用行,散文用单词,单个被弄坏的令牌用字符。
  • 比较之前先统一换行符,否则一份 CRLF 文件对上一份 LF 文件会逐行标红。
  • 做列表对比之前,明确决定大小写、首尾空白和重复项算不算数。
  • 每个目的地只转义一次,并检查结果里有没有字面量反斜杠——它说明这个值本来就已经转义过了。
  • 把 Markdown 和 HTML 预览当作渲染辅助,不要当成「目标渲染器或浏览器一定也这样显示」的证据。

常见问题

该用文本比较还是列表对比?

先问顺序重不重要。想知道同一份文档的两个版本之间改了什么,用文本比较;想知道两边共有哪些条目、各自独有哪些条目,用列表对比,此时这些条目出现在第几行无关紧要。

两个看起来一样的文件,为什么每一行都显示有改动?

几乎总是换行符。Windows 上保存的文件行尾是 CRLF,别处保存的是 LF,于是每一行都差了一个看不见的字符。一个文件末尾多一个换行、另一个没有,也会带来类似的意外。先统一,再比较。

HTML 预览会执行我的 JavaScript 吗?

它在受限沙箱中渲染,片段与页面其余部分、以及你的会话相互隔离。这层隔离正是它的意义所在,同时也意味着预览无法忠实还原同一段标记在真实源上、带真实网络访问时的行为。

我的文本会被上传吗?

不会。比较、转义、转换和渲染都在当前浏览器标签页内完成,也不跨访问保存。用来比对的文档经常含有客户数据或凭据,请先脱敏,而不要把「本地处理」当成可以随手粘贴的许可。

浏览全部开发者工具,或阅读开发者工具指南中的实例演练。