我一直在到处寻找这个问题的答案,但我找不到。我希望能够检测消息中是否有表情符号。我已经尝试检查消息内容是否以 :
开头并以 :
结尾以及以 <:
或 <a:
开头并查看它是否以 {{1} 结尾} 或 :>
。无论哪种方式,这些都不起作用,因为如果其中一条消息包含表情符号的开头(:
、:
等),机器人确实执行了我编写的代码。
这是我使用的代码,我没有从中得到任何错误。
<a:
答案 0 :(得分:1)
使用 String.prototype.match()
函数,您可以匹配字符串中的正则表达式。
如果您不了解正则表达式,就像您正在执行的操作一样(检查它是否以 : 开头并以 : 结尾等),但它的工作效率更高。我不够熟练,无法即时为您提供特定的正则表达式,但无论如何这是自学的重要技能,因此请查找一些教程并使用 regex101.com 进行测试。
一旦你有匹配表情符号的正则表达式,你可以简单地执行 message.content.match(emojiRegex) 来查看它是否有表情符号!
编辑:这样做的好处是,与您使用startsWith() 和endsWith() 所做的不同,这仅在您的消息只是一个表情符号且前后没有其他文本时才有效,使用match() 和regex 甚至可以让您在字符串的中间匹配它。