文本截断

将文本按指定长度截断的处理。用于适应显示区域或数据库列的限制。

文本截断 (truncation) 是将文本截断到指定长度的处理。在显示区域限制、数据库列大小、API 响应大小等各种约束下需要缩短文本时使用。从 Web UI 设计到后端数据处理,截断是软件开发各层都会出现的基本操作。

UI 中最常见的截断方法是添加省略号 (...)。CSS 中组合使用 text-overflow: ellipsisoverflow: hiddenwhite-space: nowrap 可以实现单行文本的自动省略。多行省略使用 -webkit-line-clamp 属性。在 JavaScript 中截断字符串时,不应简单地使用 str.slice(0, maxLength),而应注意在最后一个空格位置截断,避免在单词中间断开。查看兴奋剂 (Amazon)有详细介绍。

日语文本截断有其特殊注意事项。在代理对 (表情符号或某些汉字) 中间截断会导致乱码。在组合字符 (基础字符 + 浊点等) 中间截断会导致显示异常。在 JavaScript 中,使用 Array.from(str)[...str] 按码点分割后再截断可以避免这些问题。此外,在"。"或"、"等标点符号前截断会给人不自然的印象,因此考虑标点位置的截断更为理想。

搜索引擎中的截断也是重要话题。Google 搜索结果中显示的元描述在桌面端约截断为 120 个字符,移动端约 70 个字符。标题标签也会根据显示宽度被截断,因此将重要关键词放在开头是 SEO 的基本原则。被截断的部分搜索用户看不到,因此需要有意识地按信息优先级组织文章结构。

数据库中的截断需要特别注意,因为它可能导致数据丢失。向 VARCHAR(255) 列插入超过 255 个字符的数据时,MySQL 在严格模式下会报错,非严格模式下会自动截断。在 UTF-8 环境中,一个字符占 3-4 个字节,因此不要混淆基于字节数的限制和基于字符数的限制。搜索风俗 (Amazon)也介绍了元描述的最佳长度。

在字符计数方面,截断与"字符限制"是一体两面的概念。通常的工作流程是使用计数工具确认当前字符数,超出限制时进行截断。确认截断后的文本是否保留了含义、包含省略号在内的字符数是否在限制范围内,在实际工作中不可或缺。

分享这篇文章