0
node.data =
  node.data.replace(/((?:\d+\.?\d+?)|(?:\d{1,3}(?:\,\d{3})+)) *([a-zA-Z]+)/,
    function(a,b,c) {
      return value[c] ? a+" (("+(b.replace(',',"") * value[c]).toFixed(2) +
      " "+ names[c]+"))" : a;
    }
  );

ご覧のとおり、私の関数は正規表現グループをキャプチャし、必要に応じてそれらを操作し、それらを置き換えて返します。

私がやりたいのは、それらを動的に操作できるようにすることです。そのため、文字列に複数の一致がある場合、配列または何かからそれらを取得できるようになります(function(a,b,c) の代わりにfunctionのようなもの(配列[]) )。

それを行う方法はありますか?

4

2 に答える 2

1

まあ、私はそれを理解しました..それは式に欠落している「g」でした..今、必要な回数だけ関数を実行します。

/(((?:\d+.?\d+?)|(?:\d{1,3}(?:\,\d{3})+)) *([a-zA-Z]+)/ g

于 2012-09-02T00:23:50.130 に答える
1

オブジェクトを使用しargumentsます。arguments[0]は最初の引数、arguments[1]は 2 番目の引数などです。

于 2012-09-01T23:54:13.987 に答える