GithubHelp home page GithubHelp logo

ricardoaguiar / emoji-test-regex-pattern Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mathiasbynens/emoji-test-regex-pattern

1.0 0.0 0.0 162 KB

A regular expression pattern for Java/JavaScript to match all emoji in the emoji-test.txt file provided by UTS#51.

License: MIT License

JavaScript 100.00%

emoji-test-regex-pattern's Introduction

emoji-test-regex-pattern emoji-test-regex-pattern on npm

emoji-test-regex-pattern offers Java- and JavaScript-compatible regular expression patterns to match all emoji symbols and sequences listed in the emoji-test.txt file provided as part of Unicode® Technical Standard #51.

These patterns can then be embedded into source code as part of projects such as emoji-regex.

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

emoji-test-regex-pattern also includes other useful assets! For every supported version of the Emoji standard, emoji-test-regex-pattern generates the following files:

  • index.txt — a list of all the emoji matched by the other files in that folder alongside their code points in U+XXXX notation.
  • index-strings.txt — a list of all the emoji matched by the other files in that folder.
  • cpp-re2.txt — a regular expression pattern matching all the emoji in index.txt compatible with the C++ RE2 library.
  • css.txt — a CSS unicode-range value matching each code point in any of the emoji sequences in index.txt.
  • java.txt — a Java-compatible regular expression pattern matching all the emoji in index.txt.
  • javascript.txt — a JavaScript-compatible regular expression pattern matching all the emoji in index.txt, for use in regular expressions without the u flag.
  • javascript-u.txt — a JavaScript-compatible regular expression pattern matching all the emoji in index.txt, for use in regular expressions with the u flag.
  • javascript-v.txt — a JavaScript-compatible regular expression pattern matching all the emoji in index.txt, for use in regular expressions with the v flag.

Note that although Unicode Emoji UTS#51 follows the versioning system used by the Unicode Standard, the version numbers can be different. For example, when Unicode 13.0 was released, so was Emoji 13.0. But later, Emoji 13.1 was published while the Unicode version number remained at 13.0. Therefore, we use the Emoji version as specified in UTS#51 (and not the version of the Unicode Standard itself) to version the different patterns:

dist/emoji-13.0/index.txt
dist/emoji-13.0/index-strings.txt
dist/emoji-13.0/cpp-re2.txt
dist/emoji-13.0/css.txt
dist/emoji-13.0/java.txt
dist/emoji-13.0/javascript.txt
dist/emoji-13.0/javascript-u.txt
dist/emoji-13.0/javascript-v.txt

dist/emoji-13.1/*.txt

dist/emoji-14.0/*.txt

dist/emoji-15.0/*.txt

dist/latest/*.txt

See the dist/ folder.

For maintainers

How to update emoji-test-regex-pattern after new UTS#51 releases

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

    # Example: Emoji 16.0 (UTS#51) is released, and its data is included in the @unicode/unicode-16.0.0 package.
    npm install unicode-emoji-16.0@npm:@unicode/unicode-16.0.0@latest --save-dev
  2. Generate the new output:

    npm run build
  3. Verify that dist contains the new file.

  4. Send a pull request with the changes, and get it reviewed & merged.

  5. On the main branch, bump the 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.

  6. 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

This project is a fork of emoji-regex, with a different goal. emoji-test-regex-pattern is available under the same MIT license as the original project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.