如何将数组的字符串转换为数组的Javascript数组?

如何将数组的字符串转换为数组的Javascript数组?,javascript,regex,Javascript,Regex,我从一个端点得到一个字符串,该字符串将采用如下所示的任何形式 输入: 第一种形式 Option1[opt1,opt4,opt8,opt7],Option5[opt2,opt3],Option6[opt5,opt6] 预期产出: [ Option1[opt1,opt4,opt8,opt7], Option5[opt2,opt3], Option6[opt5,opt6] ] [ Option1[1,4,8,7], Option5[2,3], Option6[5,

我从一个端点得到一个字符串,该字符串将采用如下所示的任何形式

输入:

第一种形式

Option1[opt1,opt4,opt8,opt7],Option5[opt2,opt3],Option6[opt5,opt6] 
预期产出

[ 
  Option1[opt1,opt4,opt8,opt7],
  Option5[opt2,opt3], 
  Option6[opt5,opt6]
]
[ 
  Option1[1,4,8,7],
  Option5[2,3], 
  Option6[5,6]
] 
[ 
  Option1[opt1],
  Option5[opt2], 
  Option6[opt5]
]
[ 
  Option1[1],
  Option5[2], 
  Option6[5]
]

预期产出

[ 
  Option1[opt1,opt4,opt8,opt7],
  Option5[opt2,opt3], 
  Option6[opt5,opt6]
]
[ 
  Option1[1,4,8,7],
  Option5[2,3], 
  Option6[5,6]
] 
[ 
  Option1[opt1],
  Option5[opt2], 
  Option6[opt5]
]
[ 
  Option1[1],
  Option5[2], 
  Option6[5]
]
第二种形式

Option1[opt1],Option5[opt2],Option6[opt6]
预期产出

[ 
  Option1[opt1,opt4,opt8,opt7],
  Option5[opt2,opt3], 
  Option6[opt5,opt6]
]
[ 
  Option1[1,4,8,7],
  Option5[2,3], 
  Option6[5,6]
] 
[ 
  Option1[opt1],
  Option5[opt2], 
  Option6[opt5]
]
[ 
  Option1[1],
  Option5[2], 
  Option6[5]
]

预期产出

[ 
  Option1[opt1,opt4,opt8,opt7],
  Option5[opt2,opt3], 
  Option6[opt5,opt6]
]
[ 
  Option1[1,4,8,7],
  Option5[2,3], 
  Option6[5,6]
] 
[ 
  Option1[opt1],
  Option5[opt2], 
  Option6[opt5]
]
[ 
  Option1[1],
  Option5[2], 
  Option6[5]
]
第三种形式

Option1,Option5,Option6 or Item1,Item2,Item3 or abc1,xyz2,ccc3
预期产量

[ 
  Option1,
  Option5, 
  Option6
]
第二和第三种形式

.split(',') 
工作并返回预期数组,但在这里,我面临第一种形式的挑战, 寻找一些选项(Reg EXP),可以考虑<代码>,<代码> >代码> > /代码> ./P> 注意:很抱歉在问题中进行更改,因为我看到来自端点的输入正在更改,但现在我将不再对问题中的输入进行任何编辑

拆分逗号“,”后跟大写字母“O”


使用正则表达式尝试以下操作:

var check1='Option1[1,4,8,7],Option5[2,3],Option6[5,6];
var check2=‘选项1[1]、选项5[2]、选项6[6];
var check3='Item1,Item2,Item3';
var regex=/\s*,\s*(?![^\[\]]*\]])/g;
var arr1=check1.split(regex);
var arr2=check2.split(regex);
var arr3=支票3.分割(正则表达式);
控制台日志(arr1);
控制台日志(arr2);

控制台日志(arr3)使用正则表达式尝试以下内容:

var check1='Option1[1,4,8,7],Option5[2,3],Option6[5,6];
var check2=‘选项1[1]、选项5[2]、选项6[6];
var check3='Item1,Item2,Item3';
var regex=/\s*,\s*(?![^\[\]]*\]])/g;
var arr1=check1.split(regex);
var arr2=check2.split(regex);
var arr3=支票3.分割(正则表达式);
控制台日志(arr1);
控制台日志(arr2);

控制台日志(arr3)请解释预期输出,它不是有效的JS。您的“预期输出”,除了不是有效的JS之外,似乎不包括第三种输入格式。请解释预期输出,它不是有效的JS。您的“预期输出”,除了不是有效的JS,似乎没有涵盖第三种输入格式。感谢@guest271314,如果字符串包含选项XX,那么它的值会不同,比如我对第三种格式的更新问题
Option1、Option5、Option6或Item1、Item2、Item3或abc1、xyz2、ccc3
@Sri如果字母字符开始匹配模式,您可以使用
RegExp
/,(?=[a-z])/i
匹配逗号
后跟不区分大小写的a-z
var str=“Option1[1,4,8,7],Option5[2,3],Option6[5,6],abc1,xyz2,ccc3,Item1,Item2,Item3”;var res=str.split(/,(?=[a-z])/i);控制台日志(res)我刚刚注意到输入有另一种形式,在数组中有字符串,即
Option1[opt1,opt4,opt8,opt7],Option5[opt2,opt3],Option6[opt5,opt6]
在这种情况下,它的行为几乎像
.split(',')
您现在已经更改了两次需求。参见我的意思,如果给定字符串是
Option1[opt1,opt4,opt8,opt7],Option5[opt2,opt3],Option6[opt5]‌​,opt6]
我得到的输出是
[“Option1[opt1”,“optt4”,“optt8”,“optt7],“Option5[opt2”,“optt3],“Option6[optt5]‌​","opt6]“]
获取您的建议答案。结果数组的长度应该是3,但如果字符串包含选项XX,那么它的长度应该是8Thank@guest271314,如果它有不同的值,比如我对第三种形式的更新问题
Option1,Option5,Option6或Item1,Item2,Item3或abc1,xyz2,ccc3
@Sri如果字母字符开始匹配模式,您可以使用
RegExp
/,(?=[a-z])/i
匹配逗号
后跟不区分大小写的a-z
var str=“Option1[1,4,8,7],Option5[2,3],Option6[5,6],abc1,xyz2,ccc3,Item1,Item2,Item3”;var res=str.split(/,(?=[a-z])/i);控制台日志(res)我刚刚注意到输入有另一种形式,在数组中有字符串,即
Option1[opt1,opt4,opt8,opt7],Option5[opt2,opt3],Option6[opt5,opt6]
在这种情况下,它的行为几乎像
.split(',')
您现在已经更改了两次需求。参见我的意思,如果给定字符串是
Option1[opt1,opt4,opt8,opt7],Option5[opt2,opt3],Option6[opt5]‌​,opt6]
我得到的输出是
[“Option1[opt1”,“optt4”,“optt8”,“optt7],“Option5[opt2”,“optt3],“Option6[optt5]‌​","opt6]“]
获取您的建议答案。结果数组的长度应该是3,但它是8