2012-06-14 25 views
5

Chỉ cần tự hỏi cách tốt nhất để thay thế các vị trí khớp trên một chuỗi.Lặp lại thông qua các đối sánh regex Javascript để sửa đổi chuỗi gốc

value.replace("bob", "fred"); 

ví dụ, công trình, nhưng tôi muốn mỗi thể hiện "bob" được thay thế bằng chuỗi ngẫu nhiên mà tôi đã lưu trữ trong một mảng. Chỉ cần làm một trận đấu regex trả về cho tôi văn bản phù hợp, nhưng không cho phép tôi thay thế nó trong chuỗi gốc. Có một cách đơn giản để làm điều này?

Ví dụ tôi mong chờ các chuỗi:

"Bob went to the market. Bob went to the fair. Bob went home" 

Để có thể bật ra như

"Fred went to the market. John went to the fair. Alex went home" 

Trả lời

4

Bạn có thể thay thế với giá trị của một cuộc gọi chức năng:

var names = ["Fred", "John", "Alex"]; 
var s = "Bob went to the market. Bob went to the fair. Bob went home"; 
s = s.replace(/Bob/g, function(m) { 
    return names[Math.floor(Math.random() * names.length)]; 
}); 

này ví dụ:

"John went to the market. Fred went to the fair. John went home" 
+0

Whoa. Đó là hoàn hảo. Cảm ơn! – Grazfather

Các vấn đề liên quan