首页 文本工具 文本反转器

🔃 文本反转器

整体/逐行/逐词/逐字反转文本,实时预览结果

Ad Space
0 字符 | 0 行 | 0
📋 反转结果
Ad Space

什么是文本反转工具?

文本反转工具是一款将文本进行各种方式反转处理的在线工具。最基本的功能是将字符串从头到尾颠倒排列("Hello" → "olleH"),但本工具还支持按单词反转、按行反转、逐字符翻转并保留空格位置等多种反转模式。文本反转在编程调试(如检查回文)、数据格式转换(如反转文件路径)、趣味文本创作、密码学教学等场景中都有应用。本工具完全在浏览器端运行,支持 Unicode 字符(包括 Emoji 和中文字符)的正确处理。

如何使用文本反转工具

  1. 步骤一:输入文本 — 在输入框中粘贴或输入需要反转的文本内容。
  2. 步骤二:选择反转模式 — 选择字符级反转(整体颠倒)、单词级反转(单词顺序颠倒但单词内部不变)、按行反转(行的顺序颠倒)。
  3. 步骤三:获取结果 — 反转结果实时显示,一键复制到剪贴板。

常见使用场景

场景一:回文检测

将文本反转后与原文对比,判断是否为回文(正读反读相同的文本)。编程面试中常见的回文检测算法题可以用此工具验证结果。

场景二:文件路径反转

将文件路径从 "com/example/utils" 反转为 "utils/example/com",用于包名与路径之间的转换,或在 Java 包名和目录结构之间映射。

场景三:趣味文本和创意写作

创建反转文字效果的帖子、签名或装饰文本。某些谜题和文字游戏中也需要反转文本来获取线索。

技术原理

JavaScript 中反转字符串的简单方法是 str.split('').reverse().join(''),但这无法正确处理 Unicode 代理对(surrogate pairs)和组合字符。Emoji(如 👨‍👩‍👧)由多个 Unicode 码点通过 ZWJ 连接,简单拆分会破坏字符完整性。正确处理需要使用 Intl.Segmenter(现代浏览器支持)或扩展的 Unicode 正则表达式。

// 简单反转(仅适用于 BMP 字符)
function reverseString(str) {
  return str.split('').reverse().join('');
}

// Unicode 安全反转(使用 Intl.Segmenter)
function unicodeReverse(str) {
  const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' });
  const segments = [...segmenter.segment(str)].map(s => s.segment);
  return segments.reverse().join('');
}

// 按单词反转
function reverseWords(str) {
  return str.split(/\s+/).reverse().join(' ');
}

// 按行反转
function reverseLines(str) {
  return str.split('\n').reverse().join('\n');
}

最佳实践与注意事项

常见问题

Q:为什么 "👨‍👩‍👧" 反转后变成乱码?

A>因为 Emoji 家族表情由多个码点通过零宽连接符(ZWJ)组成。简单 split('') 会将一个 Emoji 拆分为多个独立码点。必须使用 Intl.Segmenter 按字素簇(grapheme cluster)分割才能正确反转。

Q:中文文本反转有什么特殊之处?

A>中文没有词间空格,字符级反转就是逐字颠倒("你好世界" → "界世好你")。如果需要按词语反转("你好世界" → "世界你好"),需要先使用分词工具(如 jieba)识别词语边界。

Q:反转操作在编程中有哪些实际应用?

A>常见应用:回文检测、数字反转(如 LeetCode 第7题)、字符串匹配算法中的模式反转、文件路径反转(包名↔目录)、栈结构(后进先出本质上就是反转)等。

Q:如何反转文本但保留空格位置不变?

A>提取所有非空字符反转后,再按原始空格位置插入。例如 "ab cd" 反转非空字符得 "dc ba",再按原位空格填充得 "dc ba"。这种模式适用于需要保持文本对齐的场景。

Q:能反转整个文件吗?

A>可以粘贴文件内容或使用上传功能。对于超大文件(>10MB),浏览器内存可能不足。建议使用命令行 rev(Linux)或 tail -r(macOS)处理。

常见问题

什么是整体反转?
整体反转将整个文本作为一个字符串完全反转,例如 "Hello World" 会变成 "dlroW olleH"。
逐行反转和逐词反转有什么区别?
逐行反转会将每一行的内容单独反转,但保持行顺序不变。逐词反转则是将每个单词的顺序反转,同时保留空格分隔。
逐字反转支持中文吗?
支持的。我们的逐字反转功能完全支持中文、日文、韩文等双字节字符,每个字符都会被单独反转。
反转后的文本可以复制吗?
可以的。点击"复制结果"按钮即可将反转后的文本复制到剪贴板,也可以点击"下载"按钮下载为文本文件。

🔥 同类热门工具

🏷️ 相关标签

文本在线工具隐私安全免费文本工具纯前端