Text Reverser
Reverse characters, words, or lines in your text.
This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.
Flips text end to end at whichever level you choose — mirror text character by character, or reverse it word by word or line by line — for palindrome checks, mirrored strings and putting a list back into the order it came in.
How to use it
- 1Type or paste into Input text.
- 2Choose Reverse characters, Reverse words or Reverse lines in the Mode dropdown.
- 3The Output box updates as you type; take it with Copy.
Example
- Input
- stressed
- Output
- desserts
Reverse words works on whitespace-separated tokens, and because it trims first and splits on runs of whitespace, double spaces and stray tabs come back as single spaces. Reverse lines splits on newlines only, so it leaves each line's contents alone.
What happens to your data
Character mode iterates the string with the spread operator, which walks Unicode code points rather than UTF-16 units — emoji outside the basic plane survive intact, though a letter followed by a separate combining accent will be split from its mark. The reversed value is a plain expression recomputed on each render rather than stored state, so there is no history of previous inputs anywhere in the page and nothing to transmit.
Last updated August 2026
A spreadsheet export came out newest-first and the person who needs it wants oldest-first. A word puzzle needs checking from both ends. Someone has posted a string backwards and you want to know what it said. Those are the same operation at three different sizes, and picking the wrong size is the usual reason the answer comes back looking like nonsense.
Decide which unit you are flipping before anything else. Reversing characters turns hello into olleh and destroys every word in the text. Reversing words keeps each word spelled correctly and changes only their order, so the sentence reads back to front but is still made of real words. Reversing lines leaves each line exactly as it was written and changes only which one comes first — that is what a list, an export or a log actually needs, and it is the one people miss, because reaching for character reversal is the habit.
The second thing worth knowing is that reversing is not cleaning up. Nothing is lowercased, no punctuation is dropped and no spacing inside a line is tidied, so 'A man, a plan, a canal: Panama' will not match its own reverse even though it is the best-known palindrome in English. Checking a palindrome is two jobs, and stripping the text down to letters is the first of them.
The third is that reversing is its own undo. Run the same mode twice and you are back where you started, with spacing the one thing that may not survive the round trip.
How it works
Toolvore splits your text three different ways depending on the mode, and the gap between them is wider than the labels suggest. Character mode segments the input into reader-visible clusters, using the browser's own Unicode segmentation, before it flips anything — so a flag emoji, a family emoji held together by zero-width joiners, and a letter carrying a separate combining accent each move as one piece rather than coming apart, which is the failure you get from splitting a string naively in most languages. Word mode is the weakest of the three: it trims both ends and splits on runs of whitespace, so tabs, double spaces and line breaks all count as one separator, every gap comes back as a single space, and a multi-line paste collapses into one long line. Line mode splits on the newline character alone, which means a file saved with Windows line endings keeps a carriage return stuck to the end of each line and drags it along, and a trailing blank line ends up at the top. The output is recalculated as you type, so there is no button to press and no earlier result kept anywhere.
Common use cases
- Putting a newest-first export back into oldest-first order
- Checking whether a word or phrase reads the same both ways
- Flipping a chat transcript or log so the earliest entry sits at the top
- Reading a string that someone stored or posted backwards
- Reversing a sentence word by word for a language or spelling exercise
- Writing a puzzle clue that has to be decoded by reading backwards
- Turning a reversed list of names or IDs the right way round before pasting it on
Frequently asked questions
Is 'A man, a plan, a canal: Panama' really a palindrome?+
Yes, under the rule everyone actually uses, which is that case, spaces and punctuation are ignored before the comparison. Reduced to letters it becomes amanaplanacanalpanama, which reads the same in both directions. A strict character-for-character comparison disagrees, because the capital A, the commas and the colon land in the wrong places once the order flips. Reversing here gives you the raw flip and nothing more — no letters are dropped, no capitals are lowered, no spacing is tidied — so the two versions will look different on screen. Strip everything that is not a letter, lowercase what is left, then compare the two.
Why do emoji and accented letters break when text is reversed?+
Because what a reader calls a character is often several units underneath. A national flag is two regional indicator symbols; a family emoji is several figures joined by zero-width characters; an accented letter can be stored as a plain letter followed by a separate combining mark. Reverse the underlying units and a flag becomes a different country's flag, a family comes apart into separate people, and the accent from café lands on the wrong letter. Character mode avoids that by grouping the text into reader-visible clusters first and moving whole clusters, which is what the browser's Unicode segmentation is for.
Where does my text go when I reverse it?+
Nowhere. This is a few lines of string arithmetic running in the page you already have open, and the reversed value is recalculated on each keystroke rather than saved, so there is no record of anything you reversed earlier. What you typed lives in the page's own state while the tab is open and goes with it when you close it. Nothing is uploaded, so there is no copy on a server to ask anyone to delete. That is worth knowing if the thing you are flipping is a licence key, an identifier lifted from a bug report, or a line out of a private log.
Does reversing characters produce mirror writing?+
No, and this catches people out. Reversing changes the order of the characters; mirror writing flips the shape of every letter as well, the way Leonardo's notebooks read only when held up to a mirror. Flip hello and you get olleh — five ordinary letters, each facing the normal way, readable by anybody. A genuine mirror effect on screen needs a transform applied to the rendering, in CSS or an image editor, not a change to the text. Some people fake it with lookalike Unicode characters instead, but that swaps your letters for different ones and tends to travel badly between apps.
How do you reverse a string in Excel, Python or JavaScript?+
Excel has no built-in function for it; the usual routes are TEXTJOIN with MID over a sequence of character positions, or a short LAMBDA in newer versions. Python's idiom is text[::-1], a slice with a step of minus one. JavaScript's classic one-liner is text.split(str).reverse().join(str) with an empty string, and it is the one to be careful with, because splitting on an empty string cuts UTF-16 units and anything outside the basic multilingual plane falls apart. Array.from gets you to code points and Intl.Segmenter to reader-visible characters. For a one-off, a box on a page beats writing any of them.
Why did my spacing change when I reversed the words?+
Word reversal treats whitespace as a separator rather than as content. The text is trimmed at both ends and then split on runs of whitespace, so a double space, a tab and a line break are all the same thing — one gap — and every gap is written back as a single space when the words are rejoined. Two consequences follow. Aligned columns do not survive, because the padding that aligned them has gone. And a multi-line paste comes back as one long line, since the newlines were separators too. If the layout matters, reverse lines instead, or take one line at a time.
What happens to Arabic, Hebrew or other right-to-left text?+
Stored order and displayed order are not the same thing in those scripts. Text is held in logical order, first letter first, and the browser lays it out right to left when it draws it, so an Arabic string on screen already looks reversed relative to how it is stored. Flip the characters and you flip the logical order, which reads as gibberish rather than as a mirror. Mixed passages get messier still, because the bidirectional algorithm re-orders runs of text at render time and the visual result rarely matches what you expected. For a visual mirror of RTL text, reversal is the wrong instrument.
Is writing something backwards a way to hide it?+
Not in any meaningful sense. Reversal is a fixed transformation with no key, so anyone who notices what has been done undoes it in seconds, and plenty of automated filters normalise text before they scan it. It works well enough as a spoiler guard, a puzzle, or a way to stop an answer being read accidentally over someone's shoulder in a group chat, which is what most people want from it. It is not suitable for anything that would matter if it were read — a password, a token, a home address. Obscurity that one button undoes is a game rather than a protection.
How is reversing a list different from sorting it backwards?+
They are different operations and the difference bites. Reversing keeps whatever order the list was already in and turns it end over end, so a list sorted by date descending becomes ascending, while a list in no particular order simply becomes the opposite of no particular order. Sorting imposes an order the data did not have, and it needs a rule — alphabetical, numeric, by date. Line mode reverses; it does not sort. One quirk to expect either way: if your text finishes with a blank line, that blank is treated as the last line and arrives at the top.