将字符串分成 3 部分,前 2 个单词作为单词,最后一个作为混合单词

一个描述性的标题不容易写,所以我将在这里解释更多我想做的事情。我有一个聊天室脚本和服务器端我正在创建用户可以输入的命令来聊天等/报告用户名原因当然当字符串到达服务器时它看起来像这样'/报告蒂姆滥用聊天'或'/举报 John,因为他喜欢发布烦人的链接' 我可以使用以下代码获取 /report、用户名和第一个理由。


var string = MessageString;

var temp = string.split(" ");

var CommandOne = temp[0];

var CommandTwo = temp[1];

var CommandThree = temp[2];

问题是字符串的最后一部分,我怎样才能抓住字符串中第二个单词之后的原因部分的所有内容?CommandOne 将显示 /report,CommandTwo 将显示用户名,但 CommandThree 将仅显示原因的第一个词而不是整个原因。我也一直在尝试使用以下代码,但无法使其正常工作。


var original = MessageString;

var result = original.substr(original.indexOf(" ") + 1);

var CommandThree = result.substr(result.indexOf(" ", "") + 1);  

我在这里查看了类似的帖子,但找不到任何这样做的帖子。


森林海
浏览 171回答 3
3回答

至尊宝的传说

只需使用slice获取所有剩余的单词,并将它们重新组合成一个字符串:var string = MessageString;var temp = string.split(" ");var CommandOne = temp[0];var CommandTwo = temp[1];var CommandThree = temp.slice(2).join(" ");

qq_遁去的一_1

您可以尝试以下操作var string = MessageString;var temp = string.split(" ");var CommandOne = temp.shift();var CommandTwo = temp.shift();var CommandThree = temp.join(" ");

GCT1015

Robin Zigmond 先发制人。切片是要走的路。const message = '/report Tim for abusing chat';const words = message.split(' ');const action = words[0];const username = words[1];const reason = words.slice(2).join(' ');console.log('action:', action);console.log('username:', username);console.log('reason:', reason);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript