在javascript中从字符串中获取数字

时间:2012-05-04 11:53:56

标签: javascript string numbers

我有一个字符串,如下所示:

8=0,2=1,5=1,6=0,7=0

我想只提取=0后跟的数字,在这种情况下:8,6和7

我如何在JavaScript中执行此操作?

3 个答案:

答案 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;
}

希望它有所帮助!