我有一个字符串如下

var str = "[series-3,series-5,series-6],[a3,a4,a5],[class a,class b]";

我想从上面的字符串中获取三个数组,如下所示
var arr1 = ["series-3","series-5","series-6"];

var arr2 = ["a3","a4","a5"];

var arr3 = ["class a", "class b"];

我应该使用什么正则表达式来实现这一目标?
不用正则表达式就能做到吗?

最佳答案

使用 String#split() 方法

var str = "[series-3,series-5,series-6],[a3,a4,a5],[class a,class b]";

// split string based on comma followed by [
var temp = str.split(/,(?=\[)/);

// remove [ and ] from string usning slice
// then split using , to get the result array
var arr1 = temp[0].slice(1, -1).split(',');
var arr2 = temp[1].slice(1, -1).split(',');
var arr3 = temp[2].slice(1, -1).split(',');

console.log(arr1, arr2, arr3);



或有一些变化的相同方法

var str = "[series-3,series-5,series-6],[a3,a4,a5],[class a,class b]";

// Remove [ at start and ] at end using slice
// and then split string based on `],[`
var temp = str.slice(1, -1).split('],[');

// then split using , to get the result array
var arr1 = temp[0].split(',');
var arr2 = temp[1].split(',');
var arr3 = temp[2].split(',');

console.log(arr1, arr2, arr3);

09-07 21:45
查看更多