是否有一个正则表达式可以匹配所有 unicode 表情符号?

MIM*_*156 4 javascript discord.js

我需要一个正则表达式来匹配所有 unicode 表情符号。我需要它来检查不和谐消息中是否包含 Unicode 表情符号。

// Here is a example of matching one Unicode Emoji
message.content.match(//g)
// or two
message.content.match(/|/g)
// and three
message.content.match(/||/g)
// then so on.
Run Code Online (Sandbox Code Playgroud)

我已经用这种方法喜欢了最后 300 个左右的表情符号,然后它停止工作,发送各种错误和东西。

有一个更好的方法吗?如果有的话你可以在评论中给我举个例子吗?我是编码新手,不太了解正则表达式和其他一些东西,所以有一个例子会有很大帮助。我还在 Visual Studio Code 上使用 Node.js 使用 JavaScript 进行编码。

更新:有一种方法确实有效,我非常感谢 Lioness100 讲述了它。有一个名为 Emoji-Regex 的 npm 包。很有用!

Phi*_*arc 12

匹配所有表情符号的正则表达式:

/(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/g
Run Code Online (Sandbox Code Playgroud)

您可以在这里测试: https: //www.regextester.com/106421

  • 小心第一个范围。它匹配标点符号,如 ‛ 和 “、货币、数学运算符、科普特字母......请参阅 https://en.wikipedia.org/wiki/Unicode_block#List_of_blocks。这*远*不仅仅是表情符号。可以说,该范围内唯一的“类似表情符号”的符号是几何形状、杂项符号和装饰符号,其中只是“[\u25a0-\u27bf]”,而不是“[\u2000-\u3300]”。 (4认同)