我想拥有一个包含输入数组的函数,其中包含需要从字符串中删除的所有单词,而我无法实现此目的。
我知道如果我想用纯文本来做,那就是
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, "");
但似乎都没有做到这一点,
任何建议都将不胜感激,
非常感谢!答案 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);