Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


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

Subscribe to updates I use emoji-regex

Statistics on emoji-regex

Number of watchers on Github 395
Number of open issues 2
Average time to close an issue 19 days
Main language JavaScript
Average time to merge a PR 6 days
Open pull requests 0+
Closed pull requests 6+
Last commit over 2 years ago
Repo Created over 5 years ago
Repo Last Updated about 2 years ago
Size 92 KB
Organization / Authormathiasbynens
Page Updated
Do you use emoji-regex? Leave a review!
View open issues (2)
View emoji-regex activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating emoji-regex for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

emoji-regex Build status

emoji-regex offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard.

This repository contains a script that generates this regular expression based on the data from Unicode Technical Report #51. Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard.


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();
let match;
while (match = regex.exec(text)) {
  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

To match emoji in their textual representation as well (i.e. emoji that are not Emoji_Presentation symbols and that arent forced to render as emoji by a variation selector), require the other regex:

const emojiRegex = require('emoji-regex/text.js');

Additionally, in environments which support ES2015 Unicode escapes, you may require ES2015-style versions of the regexes:

const emojiRegex = require('emoji-regex/es2015/index.js');
const emojiRegexText = require('emoji-regex/es2015/text.js');


Mathias Bynens


emoji-regex is available under the MIT license.

emoji-regex open issues Ask a question     (View All Issues)
  • over 3 years Update?
emoji-regex list of languages used
Other projects in JavaScript