我正在尝试将以下字符串拆分为" Chan#:"用可选的逗号","就在"之前,陈#:"
Chan 0: 2.50 0.12 13.92 83.46,Chan 1: 2.58 85.92 2.47 9.03,Chan 2: 5.00 85.0 33.33 6.64,Chan 3: 0.00 0.00 14.41 85.59
我目前正在使用此正则表达式:
var x = values.value;
var v = x.split(/\b[,]?Chan\s+\d+:\s+([\s\d.]+)/g);
console.log(v.length);
console.log(v[0]);
console.log(v[1]);
console.log(v[2]);
console.log(v[3]);
console.log(v[4]);
console.log(v[5]);
console.log(v[6]);
console.log(v[7]);
console.log(v[8]);
预期输出是一个大小为4的数组,每个通道都有一个数组。相应的4个数字。但是我得到一个大小为9的数组:https://imgur.com/41Hs0cy
答案 0 :(得分:0)
尝试Array#filter
。使用有效参数重新创建数组
var x = 'Chan 0: 2.50 0.12 13.92 83.46,Chan 1: 2.58 85.92 2.47 9.03,Chan 2: 5.00 85.0 33.33 6.64,Chan 3: 0.00 0.00 14.41 85.59';
var v = x.split(/\b[,]?Chan\s+\d+:\s+([\s\d.]+)/g).filter(a=> a)
console.log(v.length);

答案 1 :(得分:0)
这样做:
var v = x.split(/\b[,]?Chan\s+\d+:\s+([\s\d.]+)/g).filter(x => x !== '');
阱,
.filter(x => x !== '')
过滤所有空的值