Thay thế tất cả các lần xuất hiện của một chuỗi con trong một chuỗi bằng JavaScript.

Giả sử các bạn đang có chuỗi

Test abc test test abc test test test abc test test abc

Bây giờ nếu muốn bỏ đi chuỗi "abc" trong chuỗi trên, với một hàm có sẵn của Javascript là .replace()  thì các ta có lệnh như sau:

Lúc này, giá trị trả về của biến str là

Test  test test abc test test test abc test test abc

tức là chỉ xóa được chuỗi "abc" xuất hiện đầu tiên mà thôi. Vậy nếu muốn xóa toàn bộ các chuỗi "abc" đã xuất hiện trong chuỗi ban đầu thì làm thế nào nhỉ?

Chúng ta sẽ có các cách sau:

Thực hiện tìm kiếm và thay thế chuỗi với Regular Expression

Thực hiện bằng cách tách chuỗi sau đó nối lại chuỗi

Có thể có vấn đề với việc thực hiện tìm kiếm và thay thế chuỗi với Regular Expression nếu search chứa các ký tự đặc biệt được dành riêng làm ký tự đặc biệt trong các biểu thức Regular Expression . Nó sẽ chỉ thực hiện tốt nếu chuỗi đưa vào không có các ký tự đặc biệt theo như bảng Biểu thức chính quy (MDN).

MDN cũng cung cấp một cách thực hiện để giải quyết vấn đề này. Thật tốt nếu điều này cũng được chuẩn hóa như RegExp.escape(str), nhưng tệ thật, nó lại không tồn tại:

Chúng ta có thể sử dụng hàm escapeRegExp() trong quá trình xử lý của phương thức .replaceAll().

Sharing is caring!

Chủ đề:

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *