用javascript中的变量用str.replace()替换所有项目

时间:2013-01-07 23:25:25

标签: javascript str-replace

我想拥有一个包含输入数组的函数,其中包含需要从字符串中删除的所有单词,而我无法实现此目的。

我知道如果我想用纯文本来做,那就是

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, "");

但似乎都没有做到这一点,

任何建议都将不胜感激,

非常感谢!

1 个答案:

答案 0 :(得分:1)

问题是您将replace表达式作为字符串传递而不是表达式对象。 例如,"/</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);