Skip to content

Text Reverser

Reverse text without breaking emoji, combining accents, or ordinary line endings.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Type or paste up to 100,000 characters into the text box.
  2. 2.Choose Characters for Unicode grapheme clusters, Words for non-whitespace runs, or Lines for logical line order.
  3. 3.Select Reverse text, verify the generated order, and copy the result if needed.

About Text Reverser

Text Reverser changes the order of text locally in your browser. Paste a short label, a sentence, source material, a list, or several lines, choose how the text should be reversed, and generate a result you can inspect and copy. Nothing is uploaded to Lizely or another service. Editing the source text or changing the mode immediately clears the previous output and copy message, so an old result cannot be confused with a new input. Empty input and text above the stated 100,000-character limit produce explicit errors, and oversized input is never silently shortened.

Character mode reverses Unicode grapheme clusters rather than JavaScript UTF-16 code units. That distinction matters because many characters visible as one symbol are made from several code points. A smiling emoji uses a surrogate pair in UTF-16. An accented letter may be stored as a base letter followed by a combining mark. Family and profession emoji often join multiple people or objects with zero-width joiners. Skin-tone modifiers, variation selectors, flag pairs, and CRLF line endings also need to stay together. Reversing code units or even individual code points can corrupt those sequences. This tool first asks the browser's Intl.Segmenter for grapheme boundaries and then reverses the resulting user-visible clusters.

Browsers without Intl.Segmenter use a conservative local fallback. The fallback iterates complete Unicode code points and keeps common combining marks, variation selectors, emoji modifiers, zero-width-joiner emoji sequences, regional-indicator flag pairs, emoji tag sequences, and CRLF together. This is safer than the common Array.from(text).reverse() shortcut, but it is not presented as a complete replacement for every boundary rule in the evolving Unicode Standard. Rare or newly assigned scripts can have boundary behavior that only a standards-complete segmenter knows. If exact handling of specialized Unicode text is critical, use a current browser with Intl.Segmenter support and verify the output.

Word mode has a deliberately narrow definition: a word is any consecutive run of non-whitespace characters. The tool reverses those runs while preserving the whitespace separators in their original positions. It does not apply language-specific tokenization, dictionary rules, punctuation removal, stemming, bidirectional-script reshaping, or grammar correction. For example, punctuation attached to a token stays attached to that token. This predictable rule works well for reversing ordinary space-separated tokens without pretending to understand every language's concept of a word.

Line mode reverses logical line contents and preserves the input's newline forms, including CRLF, LF, and CR. A final line ending remains at the end of the output, and blank lines remain represented. Mixed newline styles are retained at their separator positions rather than normalized without permission. Line mode does not reverse the characters within each line; choose character mode for that. This makes it useful for reversing a pasted checklist, log excerpt, list of identifiers, or small block of records while retaining its basic text-file structure.

After generation, compare the result with the source before using it in code, identifiers, passwords, encoded data, or right-to-left text. Reversal is a presentation transformation, not encryption, translation, transliteration, or a secure obfuscation method. Bidirectional control characters can affect how text is displayed even when the stored sequence is correct. The tool does not remove invisible characters or normalize composed and decomposed Unicode forms. Copying depends on browser clipboard permission; a denied write is reported instead of being labeled successful. The source remains in the input until you edit or clear it, and the generated text exists only in the current page state.

Methodology & sources

Input is validated without truncation against a 100,000 UTF-16-code-unit limit. Character mode segments with Intl.Segmenter at grapheme granularity, then reverses complete segments; its fallback preserves complete code points plus common combining, variation, modifier, ZWJ, flag, tag, and CRLF sequences. Word mode reverses non-whitespace runs while leaving whitespace slots in place. Line mode reverses line contents while retaining CRLF, LF, or CR separators and any final ending.

Frequently asked questions

Will character mode break emoji or accented letters?
It uses Intl.Segmenter grapheme boundaries when available, which keeps user-visible Unicode clusters together. A conservative fallback preserves common combining marks, emoji modifiers, ZWJ sequences, flags, and CRLF.
What counts as a word in word mode?
A word is a consecutive run of non-whitespace characters. Whitespace separators stay in their original positions, and punctuation attached to a token stays with it.
Does line mode keep Windows CRLF endings?
Yes. Line mode recognizes CRLF, LF, and CR, preserves their forms, and keeps a final line ending at the end of the result.
Is my text uploaded or stored?
No. Reversal and copying happen in the current browser. Lizely does not receive the text through this tool.

Text Tools guides

View all