8

说我有这样的事情:

var array = [cat,dog,fish];
var string = 'The cat and dog ate the fish.';

我想从字符串中清除所有这些值

var result = string.replace(array,"");

结果最终会是:The and ate the .

现在,replace()似乎只替换了数组中的一个值。我怎样才能使它在字符串中替换数组中的所有/多个值?

谢谢!

4

2 回答 2

12

您可以创建自定义正则表达式,也可以遍历字符串并手动替换。

array.forEach(function( word ) {
    string = string.replace( new RegExp( word, 'g' ), '' );
});

或者

var regexp = new RegExp( array.join( '|' ), 'g' );

string = string.replace( regexp, '' );
于 2012-12-07T00:42:30.253 回答
2
string.replace(new RegExp(array.join("|"), "g"), "");
于 2012-12-07T00:42:55.463 回答