-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 回答