2012-12-07 32 views
8

說我有這樣的事情:jQuery的:使用值從數組替換字符串

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

我想從一個字符串

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

結果將最終被清除所有的這些值: The and ate the .

現在,replace()似乎只是從數組中取代一個值。我該如何做到這一點,所以數組中的所有/多個值在字符串中被替換?

謝謝!

+0

聞起來像作業。那麼你的例子是無效的,運行數組會產生錯誤。你有沒有使用'for'循環或'each()'和'new RegExp()'?提示,嘗試一下。 – epascarello

回答

10

你要麼創建定製正則表達式或您遍歷字符串,並手動替換。

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

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

string = string.replace(regexp, ''); 
+0

它很完美! – Bennett

2
string.replace(new RegExp(array.join("|"), "g"), "");