テキスト逆順
テキスト処理はすべてブラウザ内で完結します。データは送信されません
「逆順にする」という言い方は曖昧で、4 通りの解釈はそれぞれ別の結果になります。`abc` が `cba` になる(行内)、最初の行が最後になる(行順)、改行も含めて全体がひっくり返る(全体)、`one two` が `two one` になる(語順)。そこでこのツールは4 つの独立した選択肢を用意しています —— 1 つ間違えると貼り直しになるためです。 単位は符号単位ではなく書記素クラスタです。 `"👍🏽".length` は 4 で、肌色修飾子付きの絵文字は UTF-16 の符号単位を 4 つ使います。符号単位で逆順にすると孤立したサロゲートが 2 つ残り、画面には `��` が出ます。コードポイント単位でもサロゲートペアは直りますが、`👨👩👧` のような ZWJ 連結や基底文字+結合文字のアクセントは分断されたままです。このツールはブラウザ標準の書記素境界で切るので、「目に見える 1 文字」がそのまま 1 単位になります。 語順モードはレイアウトに触りません。 行頭・行末の空白と語間のすき間はその場に残り、動くのは語だけです。すべて逆にすると ` foo bar` は `bar foo ` になり、インデントが行末に取り残されます。
機能
- 行内・全体・行順・語順の 4 モードが独立
- 書記素クラスタ単位なので、絵文字・肌色修飾子・ZWJ 連結・結合文字が分断されない
- 行内と語順のモードは行構造を保ち、行数が変わらない
- 語順モードは行頭行末の空白と語間のすき間を保つ(インデントが行末に残らない)
- 行順モードは行の並びだけを変え、行の中身には一切触れない
- CRLF / CR / LF をすべて改行として扱い、出力は LF に統一
- 空行も他の行と同じように扱われる(行順モードでは一緒に逆順になる)
- 処理はすべてブラウザ内で完結し、内容は送信されません
使い方
- 逆順にしたいテキストを入力欄に貼り付けます
- 単位を選ぶと結果が即座に更新されます
- 「コピー」で結果を取り出します
よくある質問
- 「全体」と「行順」は何が違いますか?
- 行順は行の位置を入れ替えるだけで、行の中身は 1 文字も動きません:`abc / def` は `def / abc` になります。全体は改行も含めて 1 本の並びとして逆順にします:`abc\ndef` は `fed\ncba` になります。行数はどちらも変わりませんが、各行の中身が元の別の行のものになり、行末の改行の有無も反転します。「紙を 180 度回す」の文字通りの意味で、最も意外に感じられる挙動なので独立した選択肢にしています。
- 語順を逆にしたのにインデントが先頭に残るのはなぜですか?
- 入れ替えているのが文字ではなく語だからです。行を「語とすき間が交互に並ぶ列」に分解し、すき間はその位置に残したまま語だけを並べ直します。したがって ` foo bar ` は ` bar foo ` になり、先頭の 2 つの空白も行末の空白もそのままです。すき間ごと逆にするとインデントが行末に移り、「勝手にレイアウトを変えられた」という結果になります。
- 絵文字は壊れませんか?
- 壊れません。切る単位はブラウザ標準の書記素境界(`Intl.Segmenter` の grapheme)で、符号単位やコードポイントではなく「読み手が 1 文字と見なすもの」に従います。肌色修飾子付きの `👍🏽`、ZWJ でつないだ家族の絵文字、基底文字+結合文字のアクセントはいずれも 1 単位のまま残ります。
関連ツール
テキスト整形
テキストログや表からコピーした1列を整形します。重複行の削除、並べ替え、空行・前後の空白・行番号の削除、空白のまとめを個別に切り替えできます。
テキストシャッフル
テキスト行・文字・語の単位でテキストをランダムに並べ替えます。語間の空白と行頭のインデントはそのまま。処理はブラウザ内で完結します。
命名規則の変換
テキスト14 の命名規則の間で識別子を変換します。fooBarBaz や FOO_BAR のような混在も語に分解し、連続する大文字も語ごとに切ります。
テキスト差分
テキスト2つのテキストを行ごとに比較し、追加・削除・未変更の行をハイライト表示します。変更は最小差分で整列し、すべてブラウザ内で処理します。
文字数カウント
テキスト英語は単語数、日本語や中国語は字数で別々に数えます。文字数・行数・バイト数・読了時間も同時に出し、すべてブラウザ内で処理するので送信しません。
簡体字・繁体字変換
テキスト中国語を簡体字と繁体字の間で相互変換します。常用語は語単位で置換し、残りは最も一般的な字形を採るため、一部は人の確認が必要です。