首页 > 解决方案 > 不和谐.JS | 如何创建一个专门在 [] 下的参数

问题描述

我实际上是在尝试在我的不和谐机器人中创建一个宣布命令,但我希望它在 [ ] 下有一个参数,这将是宣布名称(例如:),!announce [announce name] announce content但我真的不知道该怎么做,我我试图搜索很多网站,但没有一个能解释我的问题。

如果需要,这是代码:

module.exports.run = async (bot, message, args) => {

  let canal = message.mentions.channels.first()

  if(!canal) {
    return message.channel.send("Por favor, ponha um canal para que eu possa anunciar.")
  } else {
    const canal = args.shift().slice(2,-1);
    const mensagem = args.join(" ");

    bot.channels.cache.get(canal).send(`:scroll: **| Anúncio Oficial**\n\n${mensagem}\n\n||@everyone|| - ${message.author}/${message.author.username}`);
  }
}

提前致谢。

标签: javascriptnode.jsdiscord.js

解决方案


我不太确定你的“args”中有什么,所以我将使用 regex 和 message.content 来解决这个问题。这是您可以从输入字符串中提取公告名称和公告内容的方法:

let reg = /!(.*) \[(.*)\] (.*)/g;
let result = reg.exec(message.content);
if(result === null) return console.log("Incorrect format");
let announceName = result[2];
let announceContent = result[3];

// if message.content = "!announce [announce name] announce content"
// then announceName = "announce name" and announceContent = "announce content"

您可以将正则表达式粘贴到https://regex101.com/进行测试。


推荐阅读