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

如何通过邀请链接获取Discord服务器名称(Discord.js v14)

解决Discord.js v14中提取邀请链接并获取服务器名称的问题

要实现从消息中提取纯Discord邀请链接,再获取对应服务器名称,你可以通过正则表达式匹配链接格式来完成,具体步骤和代码如下:

核心思路

Discord邀请链接主要有两种格式:discord.gg/xxx 和 discord.com/invite/xxx,通过正则表达式可以精准匹配这类链接,然后从消息内容中提取出来,再传入fetchInvite方法。

完整代码示例

// 匹配Discord邀请链接的正则表达式,兼容带/不带http(s)、www的情况
const inviteRegex = /(https?:\/\/)?(www\.)?(discord\.gg\/|discord\.com\/invite\/)[a-zA-Z0-9]+/gi;
// 从消息内容中提取第一个匹配到的邀请链接
const inviteLink = message.content.match(inviteRegex)?.[0];

if (inviteLink) {
  try {
    const invite = await message.client.fetchInvite(inviteLink);
    // 获取服务器名称(注意:部分临时邀请或已删除的服务器可能无guild信息)
    const guildName = invite.guild?.name;
    
    if (guildName) {
      await message.reply(`对应的服务器名称:${guildName}`);
    } else {
      await message.reply("该邀请无法获取到服务器名称(可能是临时邀请或服务器已删除)");
    }
  } catch (error) {
    await message.reply("无效的邀请链接,或机器人无权限获取该邀请信息");
    console.error("获取邀请信息出错:", error);
  }
} else {
  await message.reply("消息中未包含有效的Discord邀请链接");
}

代码说明

  • 正则表达式:覆盖了所有常见的Discord邀请链接格式,确保能匹配到消息中混杂的链接
  • 链接提取:使用match方法获取匹配结果,?.[0]安全获取第一个匹配的链接(避免无匹配时报错)
  • 错误处理:用try-catch捕获无效链接、权限不足等异常情况,提升代码稳定性
  • 空值判断:invite.guild可能为null,需要判断后再获取名称,避免运行时错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:50:02