テキスト切り捨て

カスタマイズ可能な接尾辞で文字または単語の制限にテキストを切り捨てます。

仕組み

  1. テキストを貼り付け: 記事、説明、ソーシャル投稿、または短くするコンテンツなど、フィールドに任意のテキストを入力または貼り付けます。
  2. 制限を設定: ターゲットプラットフォームに合った文字または単語の制限を選択します(例: メタ説明には160、Twitterには280)。
  3. 結果をコピー: 切り捨てられたテキストが瞬時に表示されます。コピーをクリックして、すぐに使える短縮バージョンを取得します。

なぜテキスト切り捨てツールを使うのか?

各プラットフォームには長さの制限があります, Twitter、メタ説明、データベースフィールド、通知、SMSは厳格な文字制限を課しています。手動の切り捨てはしばしば単語の途中でぎこちなく切れたり、句読点が中途半端に残ったりします。このツールは単語境界でインテリジェントに切り捨て、制限内でレンダリングがどのように見えるかを正確にプレビューでき、時間を節約してフォーマットエラーを回避できます。

機能

よくある質問

単語の途中で切りますか?

いいえ。トランケーターは制限の前の最も近い単語境界で切るため、出力は常に完全な単語で終わります。これにより、切り捨てられたテキストが読みやすく、整然とした状態に保たれます。

メタ説明にこれを使用できますか?

はい。Googleのメタ説明には制限を155〜160文字に、よりタイトな切り捨てには120文字に設定します。ツールは結果を微調整するために文字カウンターをリアルタイムで表示します。

特殊文字と絵文字はどうなりますか?

特殊文字と絵文字はそのまま保持されます。一部のプラットフォームでは絵文字が2文字としてカウントされる場合があることに注意してください, 精度が重要な場合は、ターゲットプラットフォームで最終カウントを確認してください。

「1 文字」とは実際には何を意味するか

ユーザーが「1 文字」と見る場所に、JavaScript は 3 つの値を見ます。文字列 「👨‍👩‍👧‍👦」(4 人家族絵文字)は 1 つの書記素クラスター7 つの Unicode コードポイント(Zero-Width Joiner U+200D で結合)、および 11 個の UTF-16 コードユニット です。これが JavaScript で "👨‍👩‍👧‍👦".length === 11 となる理由です。権威ある定義は Unicode Standard Annex #29「Unicode テキストセグメンテーション」(現在のバージョン 15.0、2022 年 9 月)にあり、書記素クラスター境界、単語境界、文境界を規定しています。現代の JavaScript は ECMAScript 2022 で標準化された Intl.Segmenter を通じて UAX #29 を公開しており、Firefox 125(2024 年 4 月)以降すべてのブラウザで出荷されています;Chrome はバージョン 87(2020 年 11 月)から、Safari は 14.1(2021 年 4 月)から。new Intl.Segmenter('ja', { granularity: 'grapheme' }) を使用して、人間が数えるように数えてください。

出荷するプラットフォームでの文字制限

単語境界は単なる split(' ') ではない

素朴な単語境界トランケータは /\s+/ で入力を分割し、制限を超える最初の単語の前で切ります。これは英語では機能します。中国語、日本語、韓国語、タイ語 では失敗します。これらはどれも単語間に空白を使用しません:入力全体が 1 つの「単語」として終わるため、トリマーはすべてを保持するか、すべてを切るかのいずれかです。アラビア語 はスペースを使用しますが、境界位置を変える方法で文字形状を結合します。granularity: 'word'Intl.Segmenter は UAX #29 単語境界アルゴリズムを適用し、すべての言語に対して正しいカットを生成します。また、「単語のような」セグメント(isWordLike: true を返す)を句読点や空白のセグメントから区別するため、セグメントを 1 回パスして文字予算の前の最後の単語境界を見つけることができます。

CSS 切り捨て:text-overflowline-clamp

DOM 内のフルテキストを保持しながら 視覚的に 切り捨てることが目標である場合(スクリーンリーダー、検索エンジン、コピー&ペーストで使用可能なまま保つため)、CSS を使用してください。1 行切り捨て には 3 つのプロパティが一緒に必要です:overflow: hidden; white-space: nowrap; text-overflow: ellipsis;text-overflow: ellipsisCSS Basic User Interface Module Level 4(W3C Candidate Recommendation 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 番目の論理文字(スクリーンリーダーが最初にアナウンスするもの)で切ります。右から左への流れにより表示順序は視覚的に反転する可能性がありますが、基底文字列は一貫しています。

なぜ切り捨てられた SMS が 161 文字でまだ 3 つの部分に分割されているのですか?

SMS はラテン文字のみのテキストに 7 ビット GSM エンコーディングを使用し、1 セグメントに 160 文字を収めます。しかし GSM-7 の外側の文字、自動修正からのカーリー「スマート」引用符(U+2018 / U+2019)、Unicode 省略記号(U+2026)、絵文字を含む文字は、メッセージ全体を UCS-2 エンコーディングに強制し、セグメントあたり 70 文字 になります。切り捨てられた 160 文字のメッセージに 1 つのスマート引用符が含まれている場合、キャリアはそれを 3 つの 70 文字 UCS-2 部分に分割します。SMS のスマート引用符を ASCII 引用符に置き換えてください。

タグを壊さずに HTML 形式のテキストを切り捨てることができますか?

文字をカウントするカットでは安全ではありません。最初に HTML タグをストリップする(DOMParser またはサーバー側パーサー経由)、プレーンテキストを切り捨て、オプションで再ラップするか、ノードツリーを歩いてテキストノード全体のプレフィックスをクローンする DOM 認識トランケータを使用してください。HTML 文字列に対する純粋な正規表現は安全ではありません(HTML は正規言語ではありません)。

サーバーに何か送信されますか?

いいえ。貼り付けるテキスト、選択する制限、設定するサフィックス、切り捨てられた出力はすべてブラウザの JavaScript で処理されます。ネットワーク呼び出しは行われず、入力のコピーは保存されません。確認するには DevTools のネットワークタブを開いてください。

関連ツール

キャラクターカウンター フリーワード&文字カウンター・オンライン 空白除去&テキストクリーナー 大文字小文字変換