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

Discord Node.js机器人替换Twitter链接报错:无法发送空消息

问题解决:Discord Bot 替换Twitter/X链接错误修复

错误原因分析

  • let twitterReplaced = twitterReplace 完全多余,直接使用twitterReplace即可。
  • 正则表达式twitterCut存在语法错误:开头多了无效的g字符,导致无法匹配任何内容,twitterFixed变为null,触发「无法发送空消息」的错误。
  • 原逻辑试图截取?之前的内容,但fxtwitter支持带参数的链接,无需额外截取;若需保留核心状态链接,也需修正正则写法。

修正后的代码

client.on("messageCreate", async (message) => {
  // 精准匹配Twitter/X状态链接的正则
  const twitterLinkRegex = /https:\/\/(twitter\.com|x\.com)\/\w+\/status\/\d+/gi;
  
  if (message.author.bot) return;
  
  // 提取消息中所有符合条件的链接
  const matches = message.content.match(twitterLinkRegex);
  if (!matches) return;
  
  // 将每个链接替换为fxtwitter域名
  const fixedLinks = matches.map(link => link.replace(/(twitter\.com|x\.com)/, "fxtwitter.com"));
  
  // 回复修正后的链接,每行一个
  message.reply({
    content: fixedLinks.join("\n"),
    allowedMentions: { repliedUser: false }
  });
});

关键改进点

  • 简化正则表达式,只匹配有效的Twitter/X状态链接,避免误处理无关内容。
  • 使用match提取所有目标链接,而非替换整个消息内容,确保仅输出修正后的URL。
  • 移除冗余的变量赋值,代码更简洁高效。
  • 支持同时处理多条链接,用换行分隔回复结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 14:42:43