javascript - 有没有办法按照“如果消息包含,请执行此操作”的方式做一些事情
问题描述
我正在创建一个 Discord 机器人,如果有人使用前缀和未知命令,我想回复。“包含”功能是什么?
switch(message.content){
case '$status':
message.reply('Online and ready to go!');
break;
case 'ping':
message.reply('Pong!');
break;
case '$help':
message.reply('$status - reply \'Online and ready to go!\'');
message.reply('$despacito - reply with despacito');
break;
case '$despacito':
message.reply('https://pbs.twimg.com/media/D-KIbiaWsAAV1-2.jpg');
break;
default:
console.log('not recognized:' + message.content);
我想If *contains* '$', message.reply('Uh oh, looks like that's not a valid command.')
在 console.log 之后添加该功能。
解决方案
您的代码的当前编写方式,而不是使用which 将在字符串中的任何位置String.includes()
搜索您的前缀,您可以使用它来查看消息是否以前缀开头。String.startsWith()
// const prefix = '$';
default:
if (message.content.startsWith(prefix)) {
return message.channel.send('Unknown command.')
.catch(console.error);
}
推荐阅读
- amazon-web-services - AWS 客户端 VPN 客户端 CIDR 范围的用途?
- firebase - 我可以循环浏览 Firestore 事务中的文档吗?
- ios - 如何在 Keychain 中找到使用 SecItemAdd 添加的证书
- c - 如何在两个数组中进行操作并将其存储在一个数组中?
- android - CoordinatorLayout 中的 NestedScrollView 和 AppBarLayout:无法滚动到 NestedScrollView 结束
- c - 获取运算符 sizeof 以区分简单地址、指针和数组(可能使用宏?)
- java - 错误:javax.net.ssl.SSLException:连接重置(仅限特定网站)
- c# - java.lang.IllegalArgumentException:Upsert 影响了多行
- java - 将自定义方法添加到 Spring RepositoryRestResource
- python - 如何使用 OpenCV 的绘图功能绘制填充矩形?