Cách Thay Thế Tất Cả Các Chuỗi Con Trong JavaScript

Việc thay thế một chuỗi con bên trong chuỗi trong JavaScript từ lâu đã khiến nhiều lập trình viên bối rối. Trước đây, phương thức replace chỉ thay thế lần xuất hiện đầu tiên của chuỗi con, đòi hỏi bạn phải sử dụng biểu thức chính quy (regex) nếu muốn thay thế tất cả. Nhưng giờ đây, nhờ có String.prototype.replaceAll, công việc này đã trở nên đơn giản và trực quan hơn rất nhiều.
Vấn Đề Với Phương Thức replace Truyền Thống
Khi sử dụng replace để thay thế một chuỗi con, ví dụ:
const str = 'xin-chào-xin-chào-xin-chào';
const newStr = str.replace('xin-chào', 'chào mừng');
console.log(newStr); // "chào mừng-xin-chào-xin-chào"
Ở đây, chỉ có lần xuất hiện đầu tiên của chuỗi “xin-chào” được thay thế. Nếu bạn muốn thay thế tất cả các lần xuất hiện, bạn phải sử dụng regex với flag g
:
const newStrAll = str.replace(/xin-chào/g, 'chào mừng');
console.log(newStrAll); // "chào mừng-chào mừng-chào mừng"
Dù hiệu quả, nhưng việc sử dụng regex có thể gây nhầm lẫn và khó đọc đối với những lập trình viên mới.
Sử Dụng String.prototype.replaceAll
Để giải quyết vấn đề này, JavaScript đã giới thiệu phương thức replaceAll, cho phép thay thế tất cả các chuỗi con mà không cần dùng biểu thức chính quy. Đây là cách sử dụng:
const str = 'xin-chào-xin-chào-xin-chào';
const newStrAll = str.replaceAll('xin-chào', 'chào mừng');
console.log(newStrAll); // "chào mừng-chào mừng-chào mừng"
Như vậy, chỉ với một dòng lệnh đơn giản, bạn đã có thể thay thế tất cả các chuỗi con trong chuỗi ban đầu mà không gặp bất kỳ rắc rối nào.
Tổng Kết
Việc sử dụng replaceAll không chỉ giúp code của bạn trở nên gọn gàng và dễ bảo trì, mà còn giảm thiểu rủi ro do những lỗi không mong muốn khi thao tác với chuỗi. Mong kiến thức này sẽ giúp ích cho bạn. Chúc bạn thành công!