You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除Discord中包含非www.youtube.com或www.twitter.com链接的消息

Discord服务器白名单链接过滤实现方案

核心逻辑

  • 用正则匹配消息中所有HTTP/HTTPS格式的链接
  • 校验所有匹配到的链接域名是否在白名单范围内
  • 只要存在任意一个非白名单链接,直接删除对应消息

完整可运行代码

// 配置放行域名白名单,可按需追加其他允许的域名
const allowDomains = ['www.youtube.com', 'www.twitter.com']
// 通用HTTP/HTTPS链接匹配正则
const urlRegex = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g

const matchedUrls = message.content.match(urlRegex)
if (matchedUrls) {
  // 校验是否存在非法链接
  const hasInvalidUrl = matchedUrls.some(url => {
    try {
      const domain = new URL(url).hostname
      return !allowDomains.includes(domain)
    } catch (err) {
      // 格式异常的链接直接判定为非法
      return true
    }
  })
  if (hasInvalidUrl) {
    message.delete()
  }
}

可选优化项

  • 如果需要放行不带www的域名、短链等,直接在allowDomains数组中添加对应域名即可,比如追加youtube.com、youtu.be、twitter.com、x.com
  • 如果需要适配无HTTP前缀的链接,可修改正则规则增加对应匹配逻辑
  • 可在删除消息的同时增加违规用户警告、禁言等联动操作,仅需要在message.delete()后追加对应逻辑即可

内容的提问来源于stack exchange,提问作者8less

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:24:02