replace
và biểu thức chính quy để thay thế văn bản. Thông thường, hàm String replace()
của JavaScript chỉ thay thế version đầu tiên mà nó tìm thấy trong một chuỗi:
const myMessage = 'this is the sentence to end all sentences'; const newMessage = myMessage.replace('sentence', 'message'); console.log(newMessage); // this is the message to end all sentences
Trong ví dụ này, chỉ có trường hợp đầu tiên của sentence
được thay thế.
Nếu bạn muốn JavaScript thay thế tất cả các version , bạn sẽ phải sử dụng một biểu thức chính quy bằng cách sử dụng toán tử /g
:
const myMessage = 'this is the sentence to end all sentences'; const newMessage = myMessage.replace(/sentence/g, 'message'); console.log(newMessage); // this is the message to end all messages
Lần này cả hai trường hợp đều được thay đổi.
Ngoài việc sử dụng nội tuyến /g
, bạn có thể sử dụng hàm khởi tạo của đối tượng RegExp
:
const myMessage = 'this is the sentence to end all sentences'; const newMessage = myMessage.replace(new RegExp('sentence', 'g'), 'message'); console.log(newMessage); // this is the message to end all messages```
Để thay thế các ký tự đặc biệt như -/\^$*+?.()|[]{})
Ta cần sử dụng dấu gạch chéo ngược để loại bỏ chúng.
Đây là một ví dụ. Với chuỗi this\-is\-my\-url
, hãy thay thế tất cả các dấu gạch ngang thoát ra ( \-
) bằng một dấu gạch ngang ( -
) không thoát.
Bạn có thể làm điều này với replace()
:
const myUrl = 'this\-is\-my\-url'; const newUrl = myMessage.replace(/\\-/g, '-'); console.log(newUrl); // this-is-my-url
Ngoài ra, hãy sử dụng new Regexp()
:
const myUrl = 'this\-is\-my\-url'; const newUrl = myUrl.replace(new RegExp('\-', 'g'), '-'); console.log(newUrl); // this-is-my-url
Trong ví dụ thứ hai này, bạn không cần phải sử dụng dấu gạch chéo ngược để thoát khỏi dấu gạch chéo ngược.
Trong bài viết này, bạn đã biết cách thay thế các trường hợp đơn lẻ, nhiều trường hợp và cách xử lý chuỗi bằng các ký tự đặc biệt.