我有一个字符串,如下所示:
8=0,2=1,5=1,6=0,7=0
我想只提取=0
后跟的数字,在这种情况下:8,6和7
我如何在JavaScript中执行此操作?
答案 0 :(得分:4)
尝试:
'8=0,2=1,5=1,6=0,7=0'
.match(/\d?=(0{1})/g)
.join(',')
.replace(/=0/g,'')
.split(','); //=> [8,6,7] (strings)
或者,如果您可以使用高级Array
iteration methods:
'8=0,2=1,5=1,6=0,7=0'.split(',')
.filter( function(a){ return /=0/.test(a); } )
.map( function(a){ return +(a.split('=')[0]); } ) //=> [8,6,7] (numbers)
答案 1 :(得分:2)
var nums = [];
'8=0,2=1,5=1,6=0,7=0'.replace(/(\d+)=0,?/g, function (m, n) {
nums.push(+n);
});
请注意,这会返回一个数字数组,而不是字符串。
或者,这是一个更简洁但更慢的答案:
'8=0,2=1,5=1,6=0,7=0'.match(/\d+(?==0)/g);
同样的答案,但它返回数字而不是字符串:
'8=0,2=1,5=1,6=0,7=0'.match(/\d+(?==0)/g).map(parseFloat);
答案 2 :(得分:0)
试试这个:
function parse(s)
{
var a = s.split(",");
var b = [];
var j = 0;
for(i in a)
{
if(a[i].indexOf("=0")==-1) continue;
b[j++] = parseFloat(a[i].replace("=0",""));
}
return b;
}
希望它有所帮助!