javascript - 拆分参数 Discord.js
问题描述
我试图split
args不仅仅是空格。我正在尝试在不同的参数中添加空格以创建动态嵌入。
'!嵌入标题;作者;描述'
但我的代码实际上将命令(“嵌入”)作为第一个参数(“标题”)发送。我怎样才能防止这种情况?
“消息”事件:
let input = message.content;
let prefix = input[0];
let command = input.substr(1).split(' ')[0];
let args = command.substr( command.indexOf(' ') + 1 );
命令:
args = args.split(';').map(elem => elem.trim());
let [autor, titulo, texto] = args;
message.channel.send(
new Discord.MessageEmbed()
.setAuthor(autor, '')
.setTitle(titulo)
.setDescription("\n\n"+texto)
.setColor("000000")
);
解决方案
您可以将其拆分message content
为实际command
等args
:
const input = "!myCommand my first arg;arg2;arg3";
const args = input.slice(1).substring(input.indexOf(' ')).split(';');
const command = input.slice(1).split(' ').splice(0, 1)[0];
console.log(`Command: ${command}`);
console.log('Args: ' + args);
参考
推荐阅读
- laravel - 如何在 laravel-6.20 中安装“Laravelium Sitemap 包”
- .net - 如何在 NSubstitute 中模拟属性设置器
- r - Geom_segment 没有读取缺失的美学:x、y、xend 和yend Piper Plot
- javascript - 从 CommonJS 应用程序导出 const 并要求它们在另一个文件中
- asp.net-core-mvc - 不要在 ASP.NET Core 中显示 TempData 的消息
- unit-testing - 如何通过 Apex 代码为 Apex 测试类创建重复/匹配规则?
- amazon-web-services - 使用 AWS Golang SecretsManager 缓存客户端的 AWS Lambda 函数的正确资源权限是什么?
- angular - 在 AWS CodeBuild 上为 Angular 项目使用本地依赖
- python - 遇到空页面时如何告诉scrapy停止抓取下一页?
- vue.js - Vue 2 - 如何在正确的时间正确地实例化