检测消息中是否有表情符号。 Discord.js

时间:2021-01-13 17:28:01

标签: discord.js

我一直在到处寻找这个问题的答案,但我找不到。我希望能够检测消息中是否有表情符号。我已经尝试检查消息内容是否以 : 开头并以 : 结尾以及以 <:<a: 开头并查看它是否以 {{1} 结尾} 或 :>。无论哪种方式,这些都不起作用,因为如果其中一条消息包含表情符号的开头(:: 等),机器人确实执行了我编写的代码。 这是我使用的代码,我没有从中得到任何错误。

<a:

1 个答案:

答案 0 :(得分:1)

使用 String.prototype.match() 函数,您可以匹配字符串中的正则表达式。 如果您不了解正则表达式,就像您正在执行的操作一样(检查它是否以 : 开头并以 : 结尾等),但它的工作效率更高。我不够熟练,无法即时为您提供特定的正则表达式,但无论如何这是自学的重要技能,因此请查找一些教程并使用 regex101.com 进行测试。

一旦你有匹配表情符号的正则表达式,你可以简单地执行 message.content.match(emojiRegex) 来查看它是否有表情符号!

编辑:这样做的好处是,与您使用startsWith() 和endsWith() 所做的不同,这仅在您的消息只是一个表情符号且前后没有其他文本时才有效,使用match() 和regex 甚至可以让您在字符串的中间匹配它。