トリム

文字列の前後の空白を除去する処理。多くのプログラミング言語で標準メソッドとして提供される。

トリム (trim) とは、文字列の先頭と末尾にある空白文字 (スペース、タブ、改行など) を除去する処理です。ほぼすべてのプログラミング言語に標準メソッドとして用意されており、ユーザー入力のバリデーション、データベースへの保存前処理、テキスト比較の前処理など、あらゆる場面で使用される基本的な文字列操作です。

各言語でのトリム実装は微妙に異なります。JavaScript では String.trim() に加え、先頭のみを除去する trimStart() と末尾のみを除去する trimEnd() が ES2019 で標準化されました。Python では str.strip() が両端、lstrip() が先頭、rstrip() が末尾を除去します。Java 11 では従来の trim() に加え、Unicode 空白文字にも対応した strip() が追加されました。この違いは実務で重要で、trim() は ASCII 空白のみを対象とするのに対し、strip() は全角スペースやノーブレークスペースも除去します。JavaScript 文字列操作の書籍でトリムの活用方法を学べます。

実務でトリムが特に重要になるのは、フォーム入力の処理です。ユーザーがテキストフィールドにコピー&ペーストすると、前後に不要な空白が混入することがよくあります。メールアドレスの前後に空白があるとログインに失敗する、検索クエリの末尾にスペースがあると検索結果が変わるなど、トリムを怠ると予期しない不具合の原因になります。セキュリティの観点でも、入力値のトリムはサニタイゼーションの第一歩として推奨されています。

よくある注意点として、全角スペース (U+3000) やノーブレークスペース (U+00A0) の扱いがあります。JavaScript の trim() は全角スペースを除去しますが、一部の言語やライブラリでは除去されない場合があります。日本語テキストでは全角スペースが意図的に使われることもあるため、一律にトリムすると情報が失われる可能性があります。また、ゼロ幅スペース (U+200B) のような不可視文字は多くのトリム実装で除去されないため、別途対応が必要です。

文字数カウントとの関連では、トリムの有無が文字数に直接影響します。「 こんにちは 」(前後に半角スペース) は 7 文字ですが、トリム後は 5 文字になります。文字数カウントツールでは「空白を含む文字数」と「空白を除く文字数」の両方を表示することで、ユーザーが目的に応じた文字数を確認できるようにすることが望ましいでしょう。SNS の投稿やメタディスクリプションの文字数制限を確認する際には、トリム後の文字数を基準にするのが一般的です。データクレンジング入門の書籍でトリムを含むテキスト前処理の全体像を学べます。