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

djs v12 如何在embed中展示带嵌入内容的图片/gif URL

解决方法

你可以通过正则匹配提取消息文本内的图片/GIF格式URL,调整Embed的图片赋值逻辑即可实现需求,修改后的代码如下:

// 匹配图片/GIF链接的正则,覆盖主流图片格式
const imgUrlRegex = /https?:\/\/\S+\.(?:png|jpg|jpeg|gif|webp)/gi
// 提取消息内容中的符合规则的图片链接
const matchedImgs = message.content.match(imgUrlRegex) || []
// 优先级:用户上传的附件图片 > 消息文本内的第一张匹配到的图片链接
const targetImgUrl = message.attachments.size > 0 
  ? message.attachments.first().url 
  : matchedImgs.length > 0 ? matchedImgs[0] : null

const embed = new MessageEmbed()
      .setDescription(message.content)
      .setColor("#E74C3C")
      .setTimestamp()
      .setImage(targetImgUrl)
      .setAuthor(
        message.author.tag,
        message.author.displayAvatarURL({ dynamic: true })
      )

逻辑说明

  • 正则会自动识别消息文本中后缀为png、jpg、jpeg、gif、webp的HTTP/HTTPS资源链接,匹配到的链接会自动嵌入到Embed内部,和附件图片的展示效果一致
  • 没有匹配到任何有效图片资源时,Embed不会显示图片字段
  • 单条Discord Embed仅支持展示1张主图,如果需要同时展示多张图片,可额外调用setThumbnail方法设置缩略图,或一次性发送多条Embed

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:06:00