emoji-regex

授权协议 MIT License
开发语言 JavaScript
所属分类 程序开发、 正则表达式工具
软件类型 开源软件
地区 不详
投 递 者 阎涵忍
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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.

 相关资料
  • Emoji 是一个用来快速访问各种表情图片的类,类包含静态方法可直接返回表情的字符串。

  • js-emoji 可以让你在浏览器上显示 Emoji 表情,使用方法: <link href="emoji.css" rel="stylesheet" type="text/css" /><script src="emoji.js" type="text/javascript"></script><script type="text/javascript">// replaces \u{1F604

  • Emoji-Picker 可以让你在网站上的输入编辑框中加入一个 emoji 表情选择器。

  • 《Emoji表情编解码库XXL-EMOJI》 方便维护,该项目合并至: https://gitee.com/xuxueli0323/xxl-tool

  • Emoji Keyboard 提供了带苹果所有表情的输入键盘控件。

  • EMOJI-LOG After building hundreds of open source software I've ended up inventing a git commit log standard called EMOJI-LOG that helps me understand a project's history with a less cognitive load jus