2012-12-07 71 views
8

Nói rằng tôi có một cái gì đó như thế này:Jquery: Chuỗi thay thế với giá trị từ một mảng

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

Tôi muốn xóa tất cả những giá trị từ một chuỗi

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

Kết quả sẽ kết thúc hạnh phúc: The and ate the .

Ngay bây giờ, replace() dường như chỉ thay thế một giá trị từ mảng đó. Làm thế nào tôi có thể làm cho nó để tất cả/nhiều giá trị từ mảng được thay thế trong chuỗi?

Cảm ơn!

+0

Mùi giống như bài tập về nhà. Vâng ví dụ của bạn là không hợp lệ, chạy dòng mảng sẽ ném lỗi. Và có bao giờ bạn sử dụng một vòng lặp 'for' hoặc' each() 'và' mới RegExp() '? Gợi ý, hãy thử điều đó. – epascarello

Trả lời

10

Bạn hoặc tạo tùy chỉnh regexp hoặc bạn lặp lại chuỗi và thay thế theo cách thủ công.

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

hoặc

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

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

Nó hoạt động hoàn hảo! – Bennett

2
string.replace(new RegExp(array.join("|"), "g"), ""); 
Các vấn đề liên quan