javascript - 不和谐.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}`);
}
}
提前致谢。
解决方案
我不太确定你的“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/进行测试。
推荐阅读
- google-maps - 谷歌方向 API 不断更改目的地邮政编码
- python - 创建 PCA 后会发生什么?
- json - 将嵌套的字典和列表 Json 处理为 DataFrame
- android - 如何检测sdks的cpu使用率
- game-maker-language - Game Maker Studio HTML5 文本显示问题
- python - 在 csv 中的重复值上加载数据 infile 更新表
- c# - 单个对象 JSON 数组?
- asp.net-core - win-x64 vs win7-x64 vs win81-x64,通过 ASP.NET Core 的 Windows RID,在 Windows 上托管
- javascript - C中的二叉树装箱算法
- visual-studio - 如何使用 libman 而不是 npm 下载 typescript 定义