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

Discord.js 嵌入消息中黑色代码块与模板字符串适配问题咨询

Discord.js 嵌入消息格式兼容问题修复方案

核心问题根因

  • 普通字符串(双引号/单引号包裹)不支持${}插值语法,因此你用双引号写的模板表达式会直接被识别为纯文本输出。仅JS模板字符串(反引号包裹)才会自动解析插值内容并计算取值。
  • 改用模板字符串后直接报错,本质是JS模板字符串的边界符和Discord格式用的反引号冲突:模板字符串本身用反引号作为起止标记,内部如果要使用反引号字符,必须添加转义符\,否则JS会将内部的反引号识别为模板字符串的结束位置,触发语法错误。
  • 额外格式问题:Discord的代码块格式不支持双反引号,行内代码用单个反引号包裹,块级黑色代码块需要用三个反引号包裹,双反引号无法被Discord识别为有效格式。

可直接使用的正确写法

方案1:普通字符串手动拼接(无转义需求,兼容性最好)

适合不想处理模板字符串转义的场景,直接用加号拼接普通字符串和插值计算结果:

.setDescription(
  "**Websocket Latency** \n" +
  "`test` \n" + // 行内代码用单个反引号;要做块级代码则替换为"```\ntest\n```"
  "**API Latency** " + (Date.now() - message.createdTimestamp) + "ms"
)

方案2:转义内部反引号的模板字符串(插值更简便)

需要将Discord格式用到的所有反引号转义,避免JS解析冲突:

.setDescription(
  `**Websocket Latency** \n` +
  // 单个反引号做行内代码,必须转义
  `\`test\` \n` +
  // 块级黑色代码块的写法,三个反引号全部转义
  // `\`\`\`test\`\`\` \n` +
  `**API Latency** ${Date.now() - message.createdTimestamp}ms`
)

注意:如果要实现多行块级黑色代码块效果,直接把对应位置的单个转义反引号替换为三个转义反引号即可,可正常渲染且不会触发JS语法报错。

内容的提问来源于stack exchange,提问作者John Smith Bro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 15:06:07