2012-12-07 13 views
8

Say mam coś takiego:Jquery: Wymień łańcuch z wartościami z tablicy

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

Chcę wyczyścić wszystkie te wartości z ciągiem

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

Wynik będzie w końcu jest: The and ate the .

Wygląda na to, że replace() zastępuje tylko jedną wartość z tablicy. Jak mogę to zrobić, aby wszystkie/wiele wartości z tablicy zostały zastąpione w ciągu znaków?

Dzięki!

+0

Zapachy jak domowych. Cóż, twój przykład jest nieprawidłowy, uruchomienie linii tablicy spowoduje błędy. Czy używałeś kiedykolwiek pętli 'for' lub' each() 'i' new RegExp() '? Podpowiedz, spróbuj tego. – epascarello

Odpowiedz

10

Albo tworzyć zwyczaj regexp lub pętla nad ciągiem i zastąpić ręcznie.

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

lub

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

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

Działa idealnie! – Bennett

2
string.replace(new RegExp(array.join("|"), "g"), ""); 
Powiązane problemy