Javascript 如何使用split将短语作为一个元素添加到数组中?

Javascript 如何使用split将短语作为一个元素添加到数组中?,javascript,arrays,split,Javascript,Arrays,Split,我有一个字符串,我使用split(“”)将其转换为数组。例如: let str = "add 2017-04-25 2 USD Jogurt" str.split(" "); ["add", "2017-04-25", "2", "USD", "Jogurt"] 但是我怎样才能在一个元素中添加两个单词,使它变成这样呢 add 2017-04-25 3 EU

我有一个字符串,我使用split(“”)将其转换为数组。例如:

let str = "add 2017-04-25 2 USD Jogurt"
str.split(" ");
["add", "2017-04-25", "2", "USD", "Jogurt"]
但是我怎样才能在一个元素中添加两个单词,使它变成这样呢

add 2017-04-25 3 EUR “French fries”
["add", "2017-04-25", "3", "EUR", "French fries"]
我知道它可以使用正则表达式,但我不知道如何使用。
在这个命令中,可能被“”拆分:添加2017-04-25 3欧元“炸薯条”

如果提供的表达式模板大部分是静态的,并且总是看起来像“动作日期数量项目名称”,那么正则表达式可能很方便:

"add 2017-04-25 2 USD Jogurt".replace(/([A-Z]{3}\s)(.*)$/, '$1“French fries”')

你可以试试这个

let str = "add ;2017-04-25 ;3 ;EUR ;French fries";
let reg = /\s*(?:;|$)\s*/;
let strList = str.split(reg);
console.log(strList[4]);

如果您希望使用自定义函数而不是正则表达式,那么这里的代码没有针对正则表达式进行性能测试

输入字符串='添加2017-04-25 3欧元的“炸薯条”和“美味汉堡”'

输出数组=[“添加”、“2017-04-25”、“3”、“欧元”、“炸薯条”、“美味汉堡”]

函数myFunction(){
var str='添加2017-04-25 3欧元的“法式薯条”和“美味汉堡”;
var result=str.split(“”);
var resultString=[];
var quotedString=[];
var ignoreSplit=“”;
推力=0;
对于(var i=0;i0)
{
//停止中间的推挤
推力=0;
quotedString.push(结果[i].replace(ignoreSplit.);
//将带引号的字符串推入主结果字符串
resultString.push(quotedString.join(“”));
//要再次使用的带引号的空字符串
quotedString=[];
}
//在双引号区域之间按if
else if(push==1)
{
quotedString.push(结果[i]);
}
//在正常情况下推入主结果字符串
其他的
{
结果字符串push(结果[i]);
}
}     
console.log('final',resultString);
}

除了使用拆分,您还可以使用从开始到结束的双引号进行匹配,或者使用

使用
/g
全局标志匹配所有事件

/(?<=“)[^“”]*(?=”)|[^\s“”]+/g

有一个简单的问题,我需要在JavaScription上回答。你想在末尾加上两个单词吗?你需要不使用正则表达式的答案吗?是的,特别是在结尾,可以使用正则表达式
/(?<=“)[^“”]*(?=”)|[^\s“”]+/g