Remove emojis from text

Remove emojis from text by stripping the Unicode pictograph blocks: U+1F300 to U+1FAFF (faces, objects, food, animals, flags), U+2600 to U+27BF (miscellaneous symbols and dingbats), U+1F000 to U+1F2FF (mahjong, domino, playing cards, enclosed alphanumerics), and U+FE00 to U+FE0F (variation selectors). Letters, digits, punctuation, and accented characters pass through. The transform runs in your browser. To strip every non-ASCII character, see remove non-ASCII.

Input
Line 1:1 LF cloud_done Saved locally
Result Remove Emoji
0 lines 0 chars

How emoji removal works

The pass is one regex: /[\u{1F300}-\u{1FAFF}\u{2600}-\u{27BF}\u{1F000}-\u{1F2FF}\u{FE00}-\u{FE0F}]/gu. The four ranges cover the standard emoji blocks. The u flag enables Unicode-aware matching, so codepoints above U+FFFF (which are stored as UTF-16 surrogate pairs) are matched correctly as single characters. Each match is removed in one pass.

Variation selectors (U+FE00 to U+FE0F) are included because they often follow emoji codepoints to switch between emoji-style and text-style rendering of the same base character. Stripping the selector along with the base ensures no orphan selectors remain. Skin-tone modifiers (U+1F3FB to U+1F3FF) sit in the U+1F300 to U+1FAFF range, so they go with the emoji.

Compound emoji built with zero-width joiners (such as family sequences) lose their components in this pass, but the connecting ZWJ characters survive because they sit at U+200D, outside the targeted ranges. To clean those up too, follow with remove zero-width. Output is computed in your browser on every keystroke, no upload involved.

How to use remove emojis from text

  1. 1Paste text containing emojis into the input panel on the left.
  2. 2Read the result on the right with every emoji stripped.
  3. 3Confirm letters, digits, and punctuation around the emojis survived.
  4. 4Click Copy to take the emoji-free text.
  5. 5Pair with remove zero-width if compound emoji left ZWJ artifacts.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Targets the standard emoji ranges

Four codepoint ranges cover the modern emoji set: U+1F300 to U+1FAFF (most modern emoji), U+2600 to U+27BF (older symbols, weather, dingbats), U+1F000 to U+1F2FF (cards, mahjong, enclosed marks), and U+FE00 to U+FE0F (variation selectors).

Handles surrogate pairs correctly

The u flag on the regex enables Unicode-aware matching. Codepoints above U+FFFF (stored as two UTF-16 code units) are matched as single characters, so the pass does not leave orphan surrogates that would corrupt the output.

Skin-tone modifiers go with the emoji

Skin-tone modifiers (U+1F3FB through U+1F3FF) sit inside the U+1F300 to U+1FAFF range, so they are stripped along with the base emoji. A "thumbs up with medium skin tone" disappears entirely rather than leaving a stray modifier.

Letters, digits, accents, punctuation survive

Anything outside the four targeted ranges passes through. ASCII text, accented Latin letters, CJK ideographs, Cyrillic, Greek, Hebrew, Arabic, and standard punctuation all stay. Use remove non-ASCII for a wholesale flatten to ASCII.

ZWJ joiners may remain on compound emoji

Family-style emoji are built using zero-width joiners between component emoji. The components are stripped here, but the joiner characters at U+200D survive because they sit outside the targeted ranges. Run remove zero-width after to clean those up too.

Worked example

Each emoji is replaced with an empty string; the surrounding spaces and punctuation are kept. Run remove extra spaces if double spaces need tidying.

Input
Great work! ๐ŸŽ‰๐Ÿ‘๐ŸŽŠ
Meeting ๐Ÿ“… at 3pm in room ๐Ÿข 2A.
Output
Great work! 
Meeting  at 3pm in room  2A.

Settings reference

Behaviour Effect on output
Modern emoji (U+1F300 to U+1FAFF) Stripped. Faces, objects, food, animals, flags, gestures.
Symbols and dingbats (U+2600 to U+27BF) Stripped. Older weather, religious, and decorative symbols.
Cards and enclosed marks (U+1F000 to U+1F2FF) Stripped. Mahjong tiles, dominos, playing cards, enclosed alphanumerics.
Variation selectors (U+FE00 to U+FE0F) Stripped. Includes the emoji-vs-text presentation selector.
Skin-tone modifiers (U+1F3FB to U+1F3FF) Stripped along with their base emoji (same range).
Zero-width joiners (U+200D) in compound emoji Pass through. Run remove zero-width after to remove them.
Letters, digits, punctuation, whitespace Pass through unchanged.
Surrounding double spaces Stay as-is. Run remove extra spaces for cleanup.

FAQ

Will it remove text-style symbols like ยฉ or โ„ข?
No. The copyright sign (U+00A9) and trademark sign (U+2122) sit outside the targeted ranges and pass through. The pass focuses on the modern emoji and dingbat blocks. To remove every non-ASCII character including those symbols, use remove non-ASCII.
What about compound emoji like family sequences?
The component emoji are stripped, but the zero-width joiner characters that connected them survive because U+200D sits outside the targeted ranges. To clean those joiners up too, run remove zero-width after this pass.
Are skin-tone modifiers handled?
Yes. The modifiers U+1F3FB through U+1F3FF sit inside the U+1F300 to U+1FAFF range, so they are stripped along with the base emoji. A modified emoji like a thumbs up with skin-tone is removed entirely, no orphan modifier left behind.
What if my text has double spaces after removal?
Removing emoji from text like "hello ๐Ÿ˜€ world" leaves "hello world" with two spaces. Run remove extra spaces after to collapse those down to a single space.
Is the input uploaded?
No. The pass is a single Unicode-aware regex replacement evaluated in your browser. Nothing about your text leaves the page, no copy is logged on our servers, and the output panel updates with no network call.