ToolBook
Support us on Ko-fi
Help us keep this free, forever

Text Reverser

How to reverse text online

Paste your text, pick a reverse mode, copy or download the output.

  1. Paste your text

    Drop in any text: a word, sentence, list, paragraph, log file, or code. There is no length limit. Use the Load sample button to try it with multi-line example text.

  2. Pick a reverse mode

    Choose Reverse characters, Reverse words, Reverse each word, Reverse lines, or Mirror. Each mode produces a different transformation and the output updates live as you type.

  3. Check the live output

    The output panel shows the reversed text instantly. In Reverse characters mode, a Palindrome badge appears when input and output match (ignoring case and whitespace).

  4. Copy or download the result

    Click Copy to put the reversed text on your clipboard, or Download to save it as a .txt file. The reverse mode is encoded in the URL so the page is shareable.

Frequently asked questions

How do I reverse text online?

Paste your text into the input panel, pick one of five reverse modes (characters, words, each word, lines, or mirror), and the output appears instantly. Copy the result to your clipboard or download it as a .txt file. The reversal happens locally in your browser.

What's the difference between the five reverse modes?

Reverse characters flips every letter ("hello" → "olleh"). Reverse words flips word order within each line ("the cat sat" → "sat cat the"). Reverse each word flips characters inside every word but keeps word order ("hello world" → "olleh dlrow"). Reverse lines flips line order top-to-bottom. Mirror combines character reversal with Unicode upside-down letters for novelty typography.

Is this text reverser free to use?

Yes. The Text Reverser is free, runs entirely in your browser, and works on desktop and mobile. Paste anything from a single word to long log files or whole articles.

Does the reverse text generator work with emoji and Unicode?

Yes. Character reversal uses Array.from, which iterates over Unicode code points rather than UTF-16 code units. So emoji ZWJ sequences like 👨‍👩‍👧 stay coherent when reversed, instead of breaking into surrogate halves the way a naive split would.

How do I check if a word or phrase is a palindrome?

Pick the "Reverse characters" mode, paste your text, and a Palindrome badge appears next to the output when the reversed text matches the original (ignoring case and whitespace). Words like "racecar" and phrases like "A man a plan a canal Panama" trigger the indicator.

How does the mirror text generator work?

Each upside-down letter is a real Unicode character that visually resembles the original rotated 180 degrees. "a" becomes "ɐ" (U+0250 Latin Small Letter Turned A), "e" becomes "ǝ" (U+01DD), "A" becomes "∀", and so on. Punctuation and a few letters that have no mirror equivalent fall back to themselves.

Can I paste the upside-down text into Twitter, Discord, or Slack?

Yes. Mirror output uses standard Unicode characters that render in every modern app: social media bios, chat apps, and document editors. The display depends on the font; most system fonts include the upside-down characters, but extremely minimal fonts may show boxes for a few letters.

Why would I want to reverse a string?

Algorithm practice (the canonical interview question), palindrome and anagram detection, semordnilap hunting (words like "stressed" / "desserts"), branding wordmarks, reading log files newest-first, accessibility testing for screen readers, and creative typography for posters and bios.

How do I reverse text in Word or Excel?

Word and Excel have no built-in reverse function. The fastest path is to paste your text into this Text Reverser, pick the mode, copy the output, and paste back. For Excel users who need a formula, the trick is =TEXTJOIN("",TRUE,MID(A1,LEN(A1)-ROW(INDIRECT("1:"&LEN(A1)))+1,1)) but it breaks on long strings, so using this tool is cleaner.

Is reversing a string the same as reversing in JavaScript?

Conceptually yes, but JavaScript's `str.split("").reverse().join("")` breaks Unicode. This tool uses `Array.from(str)` (equivalent to the spread syntax `[...str]`) which iterates by code point. The Python equivalent is `s[::-1]`. Rust uses `s.chars().rev().collect::<String>()`.

Four ways to reverse text

Characters, words, lines, mirror — when to use each, and why Unicode-safe reversal matters.

Four ways to flip text

Reversing text sounds like one operation. It's actually four, depending on what "reverse" means in context.

Reverse characters — the literal flip

"hello" becomes "olleh". Every character flipped left-to-right. The classic algorithm question and the most common interpretation of "reverse this string."

The trick is doing it correctly with Unicode. A naive s.split('').reverse().join('') works for ASCII but breaks emoji and astral-plane characters, because JavaScript strings split into UTF-16 code units rather than characters. The 👨‍👩‍👧 family emoji is a sequence of multiple code units; splitting and reversing them produces garbage.

This tool uses Array.from(s), which iterates over Unicode code points and handles all of the edge cases (emoji ZWJ sequences, surrogate pairs, combining marks). So your reversed emoji stay coherent.

Reverse words — keep word order around the spaces

"the quick brown fox" becomes "fox brown quick the". Words flipped, spaces preserved between them, line breaks preserved. Useful for word-order puzzles, for testing right-to-left language layout assumptions, and for reformatting tagged data ("name: John Smith" → "Smith John :name" — though for that specific case, find-and-replace is usually cleaner).

The algorithm splits on whitespace runs (preserving the runs as their own tokens), reverses the array, and joins. Multi-line input reverses each line independently — so paragraph structure is preserved.

Reverse lines — flip the document top-to-bottom

The order of lines reverses. Line 1 becomes the last line; the last line becomes line 1. Word order and character order within each line are unchanged.

Used most often for chronological data — log files written newest-at-bottom that you want to read newest-at-top, todo lists where you want the most recent additions on top, and CSV columns that came out in the wrong order.

Mirror — character reversal plus Unicode upside-down letters

This is the fun one. "hello" becomes "oʃʃǝɥ" — characters reversed and each letter swapped for its Unicode upside-down equivalent.

Each upside-down letter is a real Unicode character. "a" becomes "ɐ" (U+0250 Latin Small Letter Turned A). "e" becomes "ǝ" (U+01DD Latin Small Letter Turned E). The Unicode standard includes these because they're used in legitimate phonetic transcription and a few rare orthographies.

Used most often as a typography prank, a Twitter bio quirk, a coffee-mug joke. Pasteable into any modern app, since the characters are standard Unicode.

Why character reversal is the algorithm-class classic

"Reverse a string" is the canonical first interview question for one specific reason: it's the simplest possible exercise that tests whether the candidate understands strings, arrays, and iteration. Every undergraduate CS curriculum includes it. Every coding bootcamp drills it. Most senior engineers can do it in seven languages.

If you're brushing up on the algorithm-class version, the standard implementations are:

// JavaScript — Unicode-safe
[...s].reverse().join('');

// Python
s[::-1]

// Rust
s.chars().rev().collect::<String>()

// Go
runes := []rune(s); for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 { runes[i], runes[j] = runes[j], runes[i] }

This page does the same operation in your browser without needing a runtime — paste, click, copy.

When you need it for accessibility testing

Some screen readers handle reversed text differently. Some text rendering engines fail on right-to-left mixes. Some database collations break when given reversed input. Reversed text is a useful adversarial test case for any system that handles strings.

If you're testing software, paste the actual production data into the reverser, then paste the reversed output back into your system. Anything that crashes, mis-displays, or returns wrong results is a bug worth reporting.