
Product
Introducing Webhook Events for Alert Changes
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.
emoji-regex
Advanced tools
A regular expression to match all Emoji-only symbols as per the Unicode Standard.
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.
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
Update emoji-test-regex-pattern as described in its repository.
Bump the emoji-test-regex-pattern dependency to the latest version.
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
Generate the new output:
npm run build
Verify that tests still pass:
npm test
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.
Push the release commit and tag:
git push && git push --tags
Our CI then automatically publishes the new release to npm.
| Mathias Bynens |
emoji-regex is available under the MIT license.
Emojione is a package that provides emoji conversion and detection. It includes functionalities to convert unicode emojis to shortnames, images, and vice versa. It is more feature-rich compared to emoji-regex, which focuses solely on regex matching.
Node-emoji is a package that allows for simple emoji handling and conversion in Node.js. It can convert emoji names to unicode and unicode to names, similar to emojione but with a simpler API. Unlike emoji-regex, it does not provide a regex pattern for matching emojis.
Emoji-aware is a package that splits strings into arrays of Unicode emoji and text. It is useful for separating emojis from other text, but it does not provide regex functionality like emoji-regex.
FAQs
A regular expression to match all Emoji-only symbols as per the Unicode Standard.
The npm package emoji-regex receives a total of 191,702,630 weekly downloads. As such, emoji-regex popularity was classified as popular.
We found that emoji-regex demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Add real-time Socket webhook events to your workflows to automatically receive software supply chain alert changes in real time.

Security News
ENISA has become a CVE Program Root, giving the EU a central authority for coordinating vulnerability reporting, disclosure, and cross-border response.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.