-1

文字列から削除する必要のあるすべての単語を含む入力配列を持つ関数が必要ですが、これを実現するのに問題があります。

プレーンテキストでそれをやりたいと思ったら、

string = string.replace(/"word"/g, "");

でも以下のような機能でやりたいのですが、

   function removeFromString(string, toRemove){
     for(var i = 0 ; i <  toRemove.length; i++){
     string = string.replace(/<tr>/g, "");
     string = string.replace(/<\/tr>/g, "");
     }

     return string;
    }

  var remove = new Array();
      remove[0] = '<tr>';
      remove[1] = '</tr>';

 removeFromString(string, remove)

私が試したこと、

このように宣言時に変数にスラッシュとgを追加すると、

  remove[0] = '/<tr>/g';
  remove[1] = '/</tr>/g';

このように、関数の変数の横にスラッシュとgを追加します。

string = string.replace(/toRemove[i]/g, "");

しかし、誰もそのトリックをしていないようです、

任意の提案をいただければ幸いです、

どうもありがとう!

4

1 に答える 1

1

問題は、置換式を式オブジェクトとしてではなく文字列として渡していることです。たとえば、"/</tr>/g"は文字列です/</tr>/gが、正規表現です。

function removeFromString(s, toRemove){
  for(var i = 0, l = toRemove.length; i <  l; ++i){
    s = s.replace(toRemove[i], "");
  }

  return s;
}

var remove = [];
// These are regular expressions
// it's best to create them only once and reuse them
remove[0] = /<tr>/g;
remove[1] = /<\/tr>/g;

removeFromString(string, remove);
于 2013-01-07T23:45:41.060 に答える