【问题标题】:Detect if there is an emoji in a message. Discord.js检测消息中是否有表情符号。不和谐.js
【发布时间】:2021-01-14 01:45:09
【问题描述】:

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

if (message.content.startsWith(":") && message.content.endsWith(":")) return;
if (message.content.startsWith("<:") && message.content.endsWith(":>")) return;
if (message.content.startsWith("<a:") && message.content.endsWith(":>")) return;

【问题讨论】:

    标签: discord.js


    【解决方案1】:

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

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

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

    【讨论】:

    • 如果您添加一些示例,也可能会有所帮助。
    猜你喜欢
    • 2021-08-11
    • 2020-11-25
    • 2019-07-18
    • 2020-04-30
    • 2021-12-04
    • 2021-08-04
    • 2021-07-01
    • 2023-03-05
    • 2022-01-26
    相关资源
    最近更新 更多