我有一個字符串,它可以是這樣的:得到串號在JavaScript
8=0,2=1,5=1,6=0,7=0
我想僅提取之後是=0
的數字,在這種情況下:8,6和7
我該如何在JavaScript中做到這一點?
我有一個字符串,它可以是這樣的:得到串號在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
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)
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);
+1,但你可以像這樣簡化你的正則表達式,然後刪除'if(keep ==='0')' –
Thanks,edited。我一定很累... –
試試這個:
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;
}
希望它有幫助!
請用'document.write'刪除零件... – 2012-05-04 12:08:29
Coule你讓我知道爲什麼? –
因爲它足以返回數字。 'document.write'會殺死網站...。如果你刪除它,我會提高你的答案。行! – 2012-05-04 12:14:49
你有試過什麼嗎? – FishBasketGordo