Tôi đang cố gắng trao đổi tất cả các lần xuất hiện của một cặp chất nền trong một chuỗi đã cho.Làm cách nào để trao đổi các đoạn trong chuỗi?
Ví dụ: tôi có thể muốn thay thế tất cả các lần xuất hiện của "cà phê" bằng "trà" và tất cả các lần xuất hiện của "trà" bằng "cà phê".
Đây là điều đầu tiên tôi nghĩ đến:
var newString = oldString.replace(/coffee/g, "__").replace(/tea/g, "coffee").replace(/__/g, "tea");
Nó hoạt động hầu hết thời gian, nhưng nếu chuỗi đầu vào của tôi chứa chuỗi "__", nó sẽ không hoạt động đúng.
Tôi đang tìm kiếm một cái gì đó mà làm việc bất kể những gì đầu vào tôi cho nó, vì vậy tôi nghĩ một số chi tiết và đến với điều này:
var pieces = oldString.split("coffee");
for (var i = 0; i < pieces.length; i++)
pieces[i] = pieces[i].replace(/tea/g, "coffee");
var newString = pieces.join("tea");
Nó hoạt động tốt nhưng nó là loại xấu xí và tiết. Tôi cố gắng để đưa ra một cái gì đó ngắn gọn hơn và tôi đã sử dụng map function xây dựng vào jQuery để đưa ra với điều này:
var newString = $.map(oldString.split("coffee"), function(piece) {
return piece.replace(/tea/g, "coffee");
}).join("tea");
Đó là tốt hơn nhưng tôi vẫn có cảm giác rằng có một số phương pháp rực rỡ đơn giản đó là thất bại trong việc đến với tâm trí tôi. Có ai ở đây biết một cách đơn giản hơn?