获取发送的命令并使用 JavaScript 将其拆分为多个变量

Posted

技术标签:

【中文标题】获取发送的命令并使用 JavaScript 将其拆分为多个变量【英文标题】:Take a command sent and split it into multiple variables with JavaScript 【发布时间】:2018-08-09 22:12:11 【问题描述】:

我正在尝试用 discord.io 编写一个机器人,问题是,当我开始执行设置昵称的命令时,我遇到了一个问题,我知道我应该使用message.substring(1).split(' '); 语法,但我不知道如何获取现在拆分的消息字符串并将子字符串放入单独的变量中。我该怎么做呢?我希望使用 ?setnick <userID> <nickname to have it set it to> 将他们的昵称设置/更改为我设置的昵称

【问题讨论】:

至少你需要展示你期望从你的分裂中得到什么。最终结果是什么?如果我是你,我会在一个完全独立的文件中编写代码来练习拆分字符串并在尝试使其与 Discord 一起工作之前证明你正在尝试做什么。您可以从 Discord 中获取消息字符串并在原型代码中使用它。 【参考方案1】:

我可能会这样做:

让我们假设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 变量添加一些验证 - 因此,如果用户在参数中添加额外的文本,您可以抛出错误或添加额外的数据作为昵称(作为示例)。

希望这会有所帮助!

【讨论】:

【参考方案2】:

拆分消息后,您将拥有一个包含所有部分的数组。

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

【讨论】:

x 是数组的所有部分,还是您分配给数组[x] 的数组部分 代码将为每个部分运行,x 将在每次代码运行时保存每个单独部分的值。

以上是关于获取发送的命令并使用 JavaScript 将其拆分为多个变量的主要内容,如果未能解决你的问题,请参考以下文章

从一个文件中获取数据并使用 awk 将其发送到另一个文件

如何从 mysql 数据库中获取数据并使用 PHP 将其发送给用户? [关闭]

如何从 azure blob 存储中获取 json 数据并使用 azure 数据工厂将其发送到 power apps dataverse

将数据从 javascript 发送到 html 并使用 php 获取

从 JSON 数据中获取产品 ID 并通过 AJAX 发布

从表单中获取所有值并通过Ajax将其发送到页面