修剪 (Trim)

去除字符串前后空白的处理。大多数编程语言都提供标准方法。

修剪 (trim) 是去除字符串开头和末尾空白字符 (空格、制表符、换行符等) 的处理。几乎所有编程语言都将其作为标准方法提供,是用户输入验证、数据库保存前处理、文本比较预处理等各种场景中使用的基本字符串操作。

各语言的 trim 实现略有不同。JavaScript 提供 String.trim(),以及 ES2019 标准化的仅去除开头的 trimStart() 和仅去除末尾的 trimEnd()。Python 提供去除两端的 str.strip()、去除开头的 lstrip() 和去除末尾的 rstrip()。Java 11 在传统的 trim() 基础上新增了支持 Unicode 空白字符的 strip()。这一区别在实际工作中很重要:trim() 仅针对 ASCII 空白,而 strip() 还能去除全角空格和不间断空格。探索锁精环 (Amazon)详细介绍了 trim 的使用方法。

trim 在表单输入处理中尤为重要。用户在文本框中复制粘贴时,前后经常会混入不必要的空白。邮箱地址前后有空格会导致登录失败,搜索查询末尾有空格会改变搜索结果,忽略 trim 会导致意想不到的问题。从安全角度来看,对输入值进行 trim 也被推荐作为数据清洗的第一步。

常见的注意事项包括全角空格 (U+3000) 和不间断空格 (U+00A0) 的处理。JavaScript 的 trim() 会去除全角空格,但某些语言或库不会。在日语文本中,全角空格可能是有意使用的,一律 trim 可能会丢失信息。零宽空格 (U+200B) 等不可见字符在大多数 trim 实现中不会被去除,需要另行处理。

在字符计数方面,是否进行 trim 直接影响字符数。" 你好 " (前后有半角空格) 是 4 个字符,trim 后变为 2 个字符。字符计数工具最好同时显示"含空格字符数"和"不含空格字符数",让用户根据目的确认相应的字符数。在确认社交媒体发帖或元描述的字符限制时,通常以 trim 后的字符数为基准。查看晚霜 (Amazon)介绍了包括 trim 在内的文本预处理全貌。

分享这篇文章