0

次のような文字列があります。

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

=0この場合は8、6、7の後に続く番号のみを抽出したい

JavaScriptでこれを行うにはどうすればよいですか?

4

3 に答える 3

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または、高度な反復方法を使用できる場合:

'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)
于 2012-05-04T11:55:43.190 に答える
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);
于 2012-05-04T12:01:24.427 に答える
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;
}

それが役に立てば幸い!

于 2012-05-04T12:07:32.853 に答える