node.js String.split()忽略引号之间的分隔符

时间:2019-02-24 11:04:28

标签: node.js string split discord.js

所以我想用node.js创建一个discord bot命令,其中给出了一些参数。主要思想是使用这样的命令

/item create name:"Test Item" price:0 stock:infinite

现在我需要分割字符串,以便每个值都可以附加。

很容易
price:0

stock:infinite

但是分裂时

name:"Test Item"

它将分为

name:"Test

Item"

我能以某种方式忽略两个引号之间的空格分隔符吗?

name"Test Item"

将保持不变。否则,哪种方法可以有效地将引号内的变量粘贴在一起?

2 个答案:

答案 0 :(得分:0)

您可以使用Regular Expressions来执行此操作,看起来像这样

const str = '/item create name:"Test Item" price:0 stock:infinite';
const rgx = /\w+:(\".+\"|\w+)/g;
const matches = str.match(rgx);

console.log(matches);

答案 1 :(得分:0)

这是您的代码段,但是已编辑,因此最后一个参数是desc:“这是一个测试”。因此,'price:0 stock:infinite'被添加到第一个参数中,我想避免

const str = '/item create name:"Test Item" price:0 stock:infinite desc:"This is a test"';
const rgx = /\w+:(\".+\"|\w+)/g;
const matches = str.match(rgx);

console.log(matches);