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

如何让Discord机器人仅将消息中的Ping内容转为代码格式而非整段消息?

解决方案

你可以用正则表达式精准匹配消息里的Discord用户提及格式,只把这些Ping部分单独用反引号包裹,而非将整条消息塞进代码块。修改后的代码如下:

if (message.content.includes('@')) {
    if (message.author.bot) {
        const channel = client.channels.cache.get('1204760182567993354') //PING BLOCKER MHC
        // 匹配Discord两种用户提及格式:<@123> 或 <@!123>
        const processedContent = message.content.replace(/(<@!?\d+>)/g, '`$1`')
        channel.send(processedContent)
    }
}

代码说明:

  • /(<@!?\d+>)/g:这是全局匹配的正则表达式,专门识别Discord用户提及:
    • <@ 匹配提及的固定开头
    • !? 兼容带感叹号的昵称提及格式(比如<@!456>)
    • \d+ 匹配用户ID的一串数字
    • > 匹配提及的固定结尾
    • g 表示找出消息里所有符合的提及,而非只替换第一个
  • replace(...):把每个匹配到的提及内容(比如<@123>)替换成`<@123>`,这样只有Ping部分会变成代码格式,其他文本保持原样式。

处理后效果示例:原消息Hello <@123> how are you?会显示为Hello <@123> how are you?(视觉上就是Ping部分被代码样式包裹,其他文本正常显示)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:42:13