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

如何在Discord.js的/echo命令中禁用命令提及?

清除Discord.js中Echo命令的命令提及

要清除输入中的命令提及(如</echo:123456>这类格式),可以通过正则表达式匹配并替换这类特殊格式的内容。以下是修改后的完整代码:

const { SlashCommandBuilder } = require('discord.js');

module.exports = {
  data: new SlashCommandBuilder()
    .setName('echo')
    .setDescription('Replies with your input!')
    .addStringOption((option) =>
      option
        .setName('input')
        .setDescription('The input to echo back')
        .setRequired(true)
    ),
  async execute(interaction) {
    let input = interaction.options.getString('input');
    // 匹配并移除所有Discord命令提及格式
    input = input.replace(/<\/\w+:\d+>/g, '');
    await interaction.reply({ content: 'Message sent!', ephemeral: true });
    await interaction.followUp(input.trim());
  },
};

关键说明

  • 正则表达式/<\/\w+:\d+>/g专门匹配Discord命令提及的结构:
    • </ 匹配命令提及的起始标记
    • \w+ 匹配命令的名称(支持字母、数字、下划线)
    • :\d+ 匹配命令的唯一ID(数字序列)
    • > 匹配命令提及的结束标记
  • replace方法会将所有匹配到的命令提及替换为空字符串,达到清除效果
  • trim()用于移除替换后可能产生的多余空格,让输出更整洁

扩展:同时清除用户/角色提及

如果需要同时清除输入中的用户提及(如<@123456>)和角色提及(如<@&123456>),可以修改正则表达式:

input = input.replace(/<\/\w+:\d+>|<@!?\d+>|<@&\d+>/g, '');

其中:

  • <@!?\d+> 匹配所有格式的用户提及
  • <@&\d+> 匹配所有格式的角色提及

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:57:15