我想要做的就是用discord.io写一个机器人,问题是,当我来制作设置昵称的命令时,我遇到了一个问题,我知道我应该使用message.substring(1).split(' ');
语法,但我不知道如何获取现在拆分的消息字符串并将子字符串放入单独的变量中。我到底该怎么做?我希望使用此?setnick <userID> <nickname to have it set it to>
答案 0 :(得分:0)
分割信息后,您将拥有一个包含所有部分的数组。
var message = " part1 part2 part3";
var array = message.substring(1).split(' ');
// array = ["part1", "part2", "part3"]
您可以使用数组索引访问这些:
var part1 = array[0];
// part1 = "part1"
或者您可以使用forEach对每个部分执行某些操作:
array.forEach(x => console.log(x));
// part1
// part2
// part3
答案 1 :(得分:0)
我可能会这样做:
让我们假装message.content
看起来像这样:"?setnick 0123 testName"
// first, store message content into small variable (to keep things clean later)
let msg = message.content;
// now pull out the command arguments - everything after the first space in message.content
let argString = msg.substr( msg.indexOf(' ') + 1 );
// argString should be "0123 testName"
// -> now split argString into pieces (id and new nickname)
let argArr = argString.split(' ');
// argArr should be ["0123", "testName"]
// -> now store each argument into its own new variable
let [uid, newNickname] = argArr;
现在您可以使用两个变量uid = "0123"
和newNickname = "testName"
。
您可能还想在argArr
变量上添加一些验证 - 因此,如果用户在参数中添加额外的文本,您可以抛出错误或添加额外数据作为昵称(作为示例)
希望这有帮助!