Javascript 获取包含空格的命令参数
我有这样一个Discord.js命令:Javascript 获取包含空格的命令参数,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我有这样一个Discord.js命令: 'broadcast': (msg) => { let message2broadcast = msg.content.substr(prefix + "broadcast ".length); if (!msg.channel.permissionsFor(msg.member).hasPermission("ADMINISTRATOR")) { msg.channel.sendMessage(msg.author
'broadcast': (msg) => {
let message2broadcast = msg.content.substr(prefix + "broadcast ".length);
if (!msg.channel.permissionsFor(msg.member).hasPermission("ADMINISTRATOR")) {
msg.channel.sendMessage(msg.author + " | No permissions! :x:");
return;
} else {
if (!message2broadcast) {
msg.channel.sendMessage(msg.author + " | No message entered. :x:");
} else {
let tosend2 = ["`Sender:`", msg.author, "`Server:`", msg.guild.name, "`Message:`", message2broadcast];
msg.channel.guild.members.forEach(user => {
user.send(tosend2.join('\n'));
});
msg.channel.sendMessage(msg.author + " | Successfully broadcasted. :white_check_mark:");
}
}
}
我想通过打字来运行它
#嗨,你好吗?
所以它会向所有公会成员发送“你好吗?”
但是,它当前将整个命令作为消息发送。。。因此,它向所有公会成员发送以下信息:#广播嗨,你好吗?
我知道问题出在这方面:
let message2broadcast = msg.content.substr(prefix + "broadcast ".length);
编辑:我试着这样做:
let message2broadcast = msg.content.split(' ')[1];
但这将得到“嗨”,只有从消息输入
我想得到包含空格的参数 任何帮助都将不胜感激 谢谢 您可以使用和来实现这一点:
let message2broadcast = msg.content.split(' ').splice(1).join(' ')
它将消息拆分为一个数组,删除第一个值,然后加入其余值。您可以使用和来实现这一点:
let message2broadcast = msg.content.split(' ').splice(1).join(' ')
它会将消息拆分为一个数组,删除第一个值,然后加入其余的值。对“”的回答更好,但我找到了另一个解决方案:
var array = msg.content.split(' ');
array.shift();
let message2broadcast = array.join(' ');
这将首先将空格(参数)
拆分为一个名为array
的变量,然后调用
.shift()
函数从数组中删除第一个元素(包含前缀的命令)。现在,我们用最后一行中的空格替换数组的逗号以获得最终结果。对“”的回答更好,但我找到了另一种解决方案:
var array = msg.content.split(' ');
array.shift();
let message2broadcast = array.join(' ');
这将首先将空格
(参数)
拆分为一个名为array
的变量,然后调用
.shift()
函数从数组中删除第一个元素(包含前缀的命令)。现在,我们用最后一行中的空格替换数组的逗号以获得最终结果。非常感谢!:)非常感谢!:)