文本反转
把文本倒过来。
这个工具能做什么
文本反转把你粘进来的内容按选定的粒度倒过来排,提供三种方式。字符模式把整段文字逐个字符首尾颠倒,「abc」变「cba」;单词模式保留每行的字符本身不动,只调转行内以空格分隔的单词顺序,「hello world」变「world hello」;行模式不碰行内内容,只把多行文本的行序整体倒排。日常遇到一列顺序刚好反了的数据、或者想临时做倒序文本又不值得专门写脚本时,选好模式点一下就能拿到结果,省去手工一个个挪的功夫。
背后最容易踩坑的是字符串反转的实现。JavaScript 里最常见的写法是 split('').reverse().join(''),但 split('') 按 UTF-16 码元切分,会把 emoji、扩展区生僻汉字这类需要代理对(surrogate pair)表示的字符劈成两半,反转后变成乱码。这个工具改用 Array.from 先按 Unicode 码点切分再反转,从码点层面绕开了这个问题。行模式和单词模式则分别用 \r?\n 和 \s+ 做切分:行模式按换行拆开再倒序,单词模式对每行按空白拆词、倒序后用单个空格重新拼接。全程在浏览器本地运行,文本不上传。
最常用得上的是那种临时、又不值得专门开编辑器的小活。比如从后台导出的一列 ID 顺序正好是反的,粘进来用字符或行模式倒一下就能和原始清单对上;或者做镜像文字、趣味文案,把一整句话字符反排后贴出去。行模式在处理日志、清单这类按行组织的数据时顺手,一份按时间正序记录的内容想临时看成倒序、又不想导进工具排序,直接反转行序即可。单词模式则用来调转以空格分词的短语顺序,或快速验证一段以空格为界的分词结果。
有几处边界值得注意。单词模式按空格切分,中文词与词之间不带空格,一整行会被当成一个「单词」,倒序后看不出变化,这是预期行为而非 bug,想做中文的文字倒序请改用字符模式。字符模式反转多行文本时,换行符本身也算字符会一起参与倒排,整块文本会彻底翻转、行的先后也跟着颠倒,若只想倒行序应选行模式。另外 Array.from 解决的是代理对层面的拆分,但由多个码点组合成的字形——带肤色修饰符或用 ZWJ 连接的组合 emoji、带组合附加符号的字符——在字符反转时仍可能次序错乱,这是 Unicode 字形簇(grapheme cluster)与单个码点不等价所致。最后它只做纯文本层面的倒序,并不理解数据结构,反转 JSON 或 Base64 会打乱其格式,结果通常不再合法。
文本反转是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“文本反转”、“字符串反转”、“倒序文本”,说的都是这个。
常见使用场景
- 把顺序反了的导出数据整列倒过来核对
- 按行反转让正序日志临时倒序查看
- 做镜像文字、趣味文案把整句字符倒排
- 调转以空格分词的短语单词顺序
- 快速验证一段以空格为界的分词结果
使用方法
- 把内容粘贴到输入框(生成类工具直接设置选项)。
- 按需要选择选项,点操作按钮。
- 结果出现在下方,点「复制结果」即可带走。