Back to rankings

mathiasbynens/emoji-regex

JavaScriptmths.be/emoji-regex

A regular expression to match all Emoji-only symbols as per the Unicode Standard.

emojiregexregexpregular-expressionunicode
Star Growth
Stars
1.9k
Forks
172
Weekly Growth
Issues
11
5001k1.5k
Sep 2014Aug 2018Aug 2022Jul 2026
Artifactsnpmnpm install emoji-regex
README

emoji-regex Build status emoji-regex on npm

emoji-regex offers a regular expression to match all emoji symbols and sequences (including textual representations of emoji) as per the Unicode Standard. It’s based on emoji-test-regex-pattern, which generates (at build time) the regular expression pattern based on the Unicode Standard. As a result, emoji-regex can easily be updated whenever new emoji are added to Unicode.

Since each version of emoji-regex is tied to the latest Unicode version at the time of release, results are deterministic. This is important for use cases like image replacement, where you want to guarantee that an image asset is available for every possibly matched emoji. If you don’t need a deterministic regex, a lighter-weight, general emoji pattern is available via the emoji-regex-xs package that follows the same API.

Installation

Via npm:

npm install emoji-regex

In Node.js:

const emojiRegex = require('emoji-regex');
// Note: because the regular expression has the global flag set, this module
// exports a function that returns the regex rather than exporting the regular
// expression itself, to make it impossible to (accidentally) mutate the
// original regular expression.

const text = `
\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation)
\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji
\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base)
\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier
`;

const regex = emojiRegex();
for (const match of text.matchAll(regex)) {
  const emoji = match[0];
  console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
}

Console output:

Matched sequence ⌚ — code points: 1
Matched sequence ⌚ — code points: 1
Matched sequence ↔️ — code points: 2
Matched sequence ↔️ — code points: 2
Matched sequence 👩 — code points: 1
Matched sequence 👩 — code points: 1
Matched sequence 👩🏿 — code points: 2
Matched sequence 👩🏿 — code points: 2

For maintainers

How to update emoji-regex after new Unicode Standard releases

  1. Update emoji-test-regex-pattern as described in its repository.

  2. Bump the emoji-test-regex-pattern dependency to the latest version.

  3. Update the Unicode data dependency in package.json by running the following commands:

    # Example: updating from Unicode v13 to Unicode v14.
    npm uninstall @unicode/unicode-13.0.0
    npm install @unicode/unicode-14.0.0 --save-dev
    
  4. Generate the new output:

    npm run build
    
  5. Verify that tests still pass:

    npm test
    

How to publish a new release

  1. On the main branch, bump the emoji-regex version number in package.json:

    npm version patch -m 'Release v%s'
    

    Instead of patch, use minor or major as needed.

    Note that this produces a Git commit + tag.

  2. Push the release commit and tag:

    git push && git push --tags
    

    Our CI then automatically publishes the new release to npm.

Author

twitter/mathias
Mathias Bynens

License

emoji-regex is available under the MIT license.

Related repositories
Textualize/rich

Rich is a Python library for rich text and beautiful formatting in the terminal.

PythonPyPIMIT Licensepythonpython3
rich.readthedocs.io/en/latest/
56.9k2.3k
twitter/twemoji

Emoji for everyone. https://twemoji.twitter.com/

HTMLMIT Licenseemojitwemoji
17.7k1.9k
tindy2013/subconverter

Utility to convert between various subscription format

C++GNU General Public License v3.0clashclashr
16.9k3.8k
carloscuesta/gitmoji

An emoji guide for your commit messages. 😜

TypeScriptnpmMIT Licenseemojigitmoji
gitmoji.dev
16.8k823
ikatyang/emoji-cheat-sheet

A markdown version emoji cheat sheet

TypeScriptnpmMIT Licenseemojicheat-sheet
13.8k4.6k
microsoft/fluentui-emoji

A collection of familiar, friendly, and modern emoji from Microsoft

PythonPyPIMIT Licenseemoji
10k557
missive/emoji-mart

🏪 One component to pick them all

TypeScriptnpmMIT Licenseemoji-pickeremoji
missiveapp.com/open/emoji-mart
9.4k904
iconify/iconify

Universal icon framework. One syntax for FontAwesome, Material Design Icons, DashIcons, Feather Icons, EmojiOne, Noto Emoji and many other open source icon sets (over 200 icon sets and ~300k icons). SVG framework, React, Vue and Svelte components!

TypeScriptnpmMIT Licenseiconsemoji
iconify.design
6.2k198
carloscuesta/gitmoji-cli

A gitmoji interactive cli tool for using emojis on commits. 💻

JavaScriptnpmMIT Licensegitmoji-cligitmoji
npmjs.com/package/gitmoji-cli
4.8k212
github/gemoji

Emoji images and names.

RubyRubyGemsMIT Licenseemojiruby
4.5k804
hfg-gmuend/openmoji

Open source emojis for designers, developers and everyone else!

HTMLCreative Commons Attribution Share Alike 4.0 Internationalopenmojiemoji
openmoji.org
4.5k264
burhanrashid52/PhotoEditor

A Photo Editor library with simple, easy support for image editing using paints,text,filters,emoji and Sticker like stories.

KotlinMIT Licenseandroidimage-processing
4.5k1k