2012-12-07 20 views
8

Dire che ho qualcosa di simile:Jquery: sostituire stringa con i valori da una matrice

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

voglio chiarire tutti quei valori da una stringa

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

Il risultato finirebbe per essere: The and ate the .

Al momento, replace() sembra sostituire solo un valore dall'array. Come posso fare in modo che tutti/più valori dall'array vengano sostituiti nella stringa?

Grazie!

+0

odora di compiti a casa. Bene, il tuo esempio non è valido, l'esecuzione della linea dell'array genera errori. E hai mai usato un ciclo 'for' o' each() 'e' new RegExp() '? Suggerimento, provalo. – epascarello

risposta

10

Si sia creare una consuetudine regexp o loop all'interno di una stringa e sostituire manualmente.

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

o

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

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

Funziona perfettamente! – Bennett

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