我正在努力以一种干净的方式来拆分下面的变量
var x = "3/13/20,2179,5232,17660,3/14/20,2727,6391,21157,3/15/20,3499,7798,24747,3/16/20,4632,9942,27980"
上面的字符串用日期及其相关值分隔,split方法的结果应为这样的结果
arr[0] = ['3/13/20','2179','5232','17660']
arr[1] = ['3/14/20','2727','6391','21157']
寻找可以带来上述结果的正则表达式模式
我知道这些将不起作用,是否有任何内置功能可用于实现此功能
.split("/");
.split(",");
用逗号分隔,后跟\d+\/
(日期的开头),然后在每个项目上用逗号分隔:
var x = '3/13/20,2179,5232,17660,3/14/20,2727,6391,21157,3/15/20,3499,7798,24747,3/16/20,4632,9942,27980';
const arr = x
.split(/,(?=\d+\/)/)
.map(str => str.split(','));
console.log(arr);
[您可以只输入map
,然后是以下元素的索引-否定任何正则表达式...,它假定数据始终是一个日期,后跟三个值。例如
const x = "3/13/20,2179,5232,17660,3/14/20,2727,6391,21157,3/15/20,3499,7798,24747,3/16/20,4632,9942,27980";
const b = x.split(",")
.map((e, i, a) => !(i % 4) && [e, a[i + 1], a[i + 2], a[i + 3]])
.filter(Boolean);
console.log(b);