文本截断器,免费

按字符或单词数截断文本,并可自定义后缀。

工作原理

  1. 粘贴您的文本:在字段中输入或粘贴任意文本 · 文章、描述、社交帖子或任何需要缩短的内容。
  2. 设置限制:根据目标平台选择字符数或单词数限制(例如 meta description 160,Twitter 280)。
  3. 复制结果:截断后的文本立即显示。点击「复制」获取即可使用的缩短版本。

为什么使用文本截断器?

每个平台都有长度限制 · Twitter、meta description、数据库字段、通知和短信都有严格的字符限制。手动截断常会在单词中间突兀切断,或留下孤立的标点。此工具在词边界智能截断,让您能精确预览在限制内的效果,节省时间并避免格式错误。

功能特性

常见问题

它会在单词中间切分吗?

不会。截断器会在限制之前的最近词边界切分,因此输出总是以完整的单词结束。这能让截断后的文本保持可读、整洁。

可以用它做 meta description 吗?

可以。Google meta description 设限制为 155–160 字符,或 120 字符进行更紧的截断。工具实时显示字符数,方便您微调结果。

特殊字符和 emoji 会怎样?

特殊字符和 emoji 会按原样保留。请注意在某些平台上 emoji 可能按 2 个字符计算 · 若精度很重要,请在目标平台上确认最终计数。

「一个字符」实际意味着什么

用户看到一个「字符」,而 JavaScript 看到三个值。字符串 「👨‍👩‍👧‍👦」(四人家庭表情符号)是 一个字形簇七个 Unicode 代码点(由零宽连接符 U+200D 连接),和 十一个 UTF-16 代码单元。这就是为什么在 JavaScript 中 "👨‍👩‍👧‍👦".length === 11。权威定义存在于 Unicode 标准附件 #29「Unicode 文本分段」(当前版本 15.0,2022 年 9 月),该附件规定了字形簇边界、单词边界和句子边界。现代 JavaScript 通过 Intl.Segmenter 公开 UAX #29,在 ECMAScript 2022 中标准化,自 Firefox 125(2024 年 4 月)起在每个浏览器中发布;Chrome 自版本 87(2020 年 11 月)起拥有它,Safari 自 14.1(2021 年 4 月)起。使用 new Intl.Segmenter('zh', { granularity: 'grapheme' }) 以人类的方式计数。

您发布到的平台上的字符限制

单词边界不仅是 split(' ')

天真的单词边界截断器在 /\s+/ 上分割输入,并在使您超过限制的第一个单词之前切割。这对英语有效。它在 中文、日文、韩文和泰文 上失败,这些语言都不使用单词之间的空格:整个输入最终作为一个单一的「单词」,所以修剪器要么保留全部,要么剪切全部。阿拉伯语 使用空格,但以改变边界位置的方式连接字母形式。带有 granularity: 'word'Intl.Segmenter 应用 UAX #29 单词边界算法,为每种语言产生正确的剪切。它还区分「类似单词」的段(返回 isWordLike: true)与标点符号和空格段,因此您可以通过对段进行一次遍历来找到字符预算之前的最后一个单词边界。

CSS 截断:text-overflowline-clamp

如果目标是 视觉上 截断,同时将完整文本保留在 DOM 中(因此它仍可用于屏幕阅读器、搜索引擎和复制粘贴),请使用 CSS。单行截断 需要三个属性一起:overflow: hidden; white-space: nowrap; text-overflow: ellipsis;text-overflow: ellipsisCSS Basic User Interface Module Level 4(W3C 候选推荐 2021 年 8 月)中定义,自 Firefox 7(2011 年 9 月)起已在每个浏览器中发布;Internet Explorer 6 早在 2001 年 8 月就有它。多行截断 使用 display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden;-webkit-line-clamp 属性可追溯到 WebKit 2009,现在在 CSS Overflow Module Level 3(W3C Working Draft)中定义。无前缀的 line-clamp 在 Safari 18(2024 年 9 月)和 Firefox 125(2024 年 4 月)中发布;始终包含 -webkit- 形式作为后备。关键限制:CSS 截断纯粹是展示性的。完整文本仍在 HTML 源中,因此 SEO 摘要、电子邮件摘要和 JS 驱动的搜索索引都看到未截断的字符串。

常见错误

更多常见问题

为什么 Twitter 将我的 URL 计为 23 字符,即使它更长?

Twitter 通过其 t.co 短链接器包装每个 URL 用于分析和滥用检测,因此它按短链接器最坏情况长度计费每个 URL:HTTPS 为 23 字符。如果您写一个 100 字符的 URL,在 Twitter 的 UI 中它计为 23。同样的规则适用于 Twitter Card 元数据。开源库 twitter-text(Twitter,MIT)实现了准确规则,如果您需要字节级完美模拟。

此工具是否尊重阿拉伯语和希伯来语等 RTL 语言?

文本内容连同其 bidi(双向)标记一起保留。截断对逻辑顺序的字符进行操作,因此在第 100 个字符处剪切阿拉伯句子是在第 100 个逻辑字符处剪切(屏幕阅读器首先宣布的那个)。由于从右到左流,显示顺序可能在视觉上反转,但底层字符串是一致的。

为什么我的截断短信在 161 字符处仍然分成三部分?

短信对纯拉丁文文本使用 7-bit GSM 编码,一个段适合 160 个字符。但 任何 GSM-7 之外的字符,包括自动更正的弯曲「智能」引号(U+2018 / U+2019)、Unicode 省略号(U+2026)或表情符号,强制整个消息使用 UCS-2 编码,每段 70 字符。如果您截断的 160 字符消息包含一个智能引号,运营商会将其分成三个 70 字符 UCS-2 部分。将智能引号替换为 ASCII 引号以用于短信。

我可以截断 HTML 格式的文本而不破坏标签吗?

不能用字符计数的剪切安全地做到。要么先剥离 HTML 标签(通过 DOMParser 或服务器端解析器),截断纯文本,然后可选地重新包装;要么使用遍历节点树并克隆整个文本节点前缀的 DOM 感知截断器。HTML 字符串上的纯正则表达式不安全(HTML 不是常规语言)。

是否有任何东西被发送到服务器?

没有。您粘贴的文本、您选择的限制、您设置的后缀和截断的输出都在您浏览器的 JavaScript 中处理。不进行任何网络调用,也不存储您输入的副本。在 DevTools 的网络选项卡中验证。

相关工具

字符计数器 免费在线单词和字符计数器 空白与文本清理器,免费 大小写转换器