【问题标题】:(discord.js) discord bot that removes any message containing the regex anywhere in the message(discord.js)discord bot,删除消息中任何位置包含正则表达式的任何消息
【发布时间】:2021-03-07 08:33:48
【问题描述】:

所以基本上我在这里尝试做的是使用不和谐机器人自动删除服务器中发送的任何包含 IP 的不和谐消息,即使它无效/超出范围也是如此。 删除后,频道会被警告不要发布 IP。 我有这个来测试它是否有效但没有任何运气有人可以帮忙吗? (我遇到的问题是尝试在 discord.js 中设置而不是使用正则表达式,我希望它删除 0.0.0.0 - 999.999.999.999 之间的任何内容)

client.on('message', message => {

let regex = (/([0-9]{1,3}\.){3}[0-9]{1,3}/);
    if (regex.match(message.content))  {
        message.channel.send("Don't post IP's in chat!")
}

【问题讨论】:

  • 您应该使用message.delete(timeout),其中timeout 是您希望在删除它之前等待的毫秒数。 (在这种情况下,大概是 0)

标签: discord discord.js bots


【解决方案1】:

RegExp.prototype.match() 不是函数;相信你在找RegExp.prototype.test():

client.on('message', (message) => {
 let regex = /([0-9]{1,3}\.){3}[0-9]{1,3}/;
 if (regex.test(message.content)) {
  message.channel.send("Don't post IP's in chat!");
 }
});

您可能还会想到String.prototype.match(),反过来说:

client.on('message', (message) => {
 let regex = /([0-9]{1,3}\.){3}[0-9]{1,3}/;
 if (message.content.match(regex)) {
  message.channel.send("Don't post IP's in chat!");
 }
});

但是,RegExp.prototype.test() 在这种情况下是最有效的。


要删除消息,请使用Message.prototype.delete()

if (regex.test(message.content)) {
 message.delete();
 message.channel.send("Don't post IP's in chat!");
}

【讨论】:

  • 你是一个绝对的传奇,我一直在寻找一整天,每个人都给了我复杂的答案,这些答案不起作用或没有意义,这实际上在十秒钟内解决了我的问题谢谢是的,你说得对,我在想字符串:/
  • 很高兴能帮上忙!
猜你喜欢
  • 1970-01-01
  • 2018-07-24
  • 2021-01-28
  • 2021-06-17
  • 2020-12-03
  • 2020-12-03
  • 2017-10-25
  • 2020-08-25
  • 1970-01-01
相关资源
最近更新 更多