emoji-regex

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

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.

Installation


Via npm:

  1. ``` sh
  2. npm install emoji-regex
  3. ```


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

  7. const text = `
  8. \u{231A}: default emoji presentation character (Emoji_Presentation)
  9. \u{2194}\u{FE0F}: default text presentation character rendered as emoji
  10. \u{1F469}: emoji modifier base (Emoji_Modifier_Base)
  11. \u{1F469}\u{1F3FF}: emoji modifier base followed by a modifier
  12. `;

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

Console output:

  1. ```
  2. Matched sequence code points: 1
  3. Matched sequence code points: 1
  4. Matched sequence code points: 2
  5. Matched sequence code points: 2
  6. Matched sequence code points: 1
  7. Matched sequence code points: 1
  8. Matched sequence code points: 2
  9. Matched sequence code points: 2
  10. ```

For maintainers


How to update emoji-regex after new Unicode Standard releases



1. Bump the _emoji-test-regex-pattern_ dependency to the latest version.

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

  1. ```sh
  2.      # Example: updating from Unicode v13 to Unicode v14.
  3.      npm uninstall @unicode/unicode-13.0.0
  4.      npm install @unicode/unicode-14.0.0 --save-dev
  5. ````

1. Generate the new output:

  1. ```sh
  2.      npm run build
  3. ```

1. Verify that tests still pass:

  1. ```sh
  2.      npm test
  3. ```

How to publish a new release


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

  1. ```sh
  2.     npm version patch -m 'Release v%s'
  3. ```

    Instead of patch, use minor or major as needed.

    Note that this produces a Git commit + tag.

1. Push the release commit and tag:

  1. ```sh
  2.     git push && git push --tags
  3. ```

    Our CI then automatically publishes the new release to npm.

Author


[![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias
|---|
[Mathias

License


_emoji-regex_ is available under the MIT license.