我有一个看起来像这样的字符串:
8=0,2=1,5=1,6=0,7=0
我只想提取后面跟着的数字=0
,在这种情况下:8、6 和 7
如何在 JavaScript 中做到这一点?
我有一个看起来像这样的字符串:
8=0,2=1,5=1,6=0,7=0
我只想提取后面跟着的数字=0
,在这种情况下:8、6 和 7
如何在 JavaScript 中做到这一点?
尝试:
'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
迭代方法:
'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)
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);
尝试这个:
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;
}
希望能帮助到你!