emoji-regex
A regular expression to match all Emoji-only symbols as per the Unicode Standard.
Last updated 8 years ago by mathias .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install emoji-regex 
SYNC missed versions from official npm registry.

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.

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.

Current Tags

  • 10.4.0                                ...           latest (3 months ago)

35 Versions

  • 10.4.0                                ...           3 months ago
  • 10.3.0                                ...           a year ago
  • 10.2.1                                ...           2 years ago
  • 10.2.0                                ...           2 years ago
  • 10.1.0                                ...           3 years ago
  • 10.0.1                                ...           3 years ago
  • 10.0.0                                ...           3 years ago
  • 9.2.2                                ...           4 years ago
  • 9.2.1                                ...           4 years ago
  • 9.2.0                                ...           4 years ago
  • 9.1.1                                ...           4 years ago
  • 9.0.0                                ...           5 years ago
  • 8.0.0                                ...           6 years ago
  • 7.0.3                                ...           6 years ago
  • 7.0.2                                ...           6 years ago
  • 7.0.1                                ...           6 years ago
  • 7.0.0                                ...           6 years ago
  • 6.5.1                                ...           7 years ago
  • 6.5.0                                ...           7 years ago
  • 6.4.3                                ...           7 years ago
  • 6.4.2                                ...           8 years ago
  • 6.4.1                                ...           8 years ago
  • 6.4.0                                ...           8 years ago
  • 6.3.0                                ...           8 years ago
  • 6.2.0                                ...           8 years ago
  • 6.1.3                                ...           8 years ago
  • 6.1.1                                ...           8 years ago
  • 6.1.0                                ...           8 years ago
  • 6.0.0                                ...           9 years ago
  • 5.0.0                                ...           10 years ago
  • 4.0.0                                ...           10 years ago
  • 3.0.0                                ...           10 years ago
  • 2.0.0                                ...           10 years ago
  • 1.0.1                                ...           10 years ago
  • 1.0.0                                ...           10 years ago
Maintainers (1)
Downloads
Total 1
Today 1
This Week 1
This Month 1
Last Day 0
Last Week 0
Last Month 0
Dependencies (0)
None
Dev Dependencies (7)

© 2010 - cnpmjs.org x YWFE | Home | YWFE