1. Biểu thức chính quy là gì?
Biểu thức chính quy (hay còn gọi là Regex) là một chuỗi các ký tự tạo thành một mẫu tìm kiếm (search pattern). Mẫu này được sử dụng để tìm kiếm và thay thế văn bản.
- Nó là một chuỗi các ký tự mô tả một mẫu cần tìm trong văn bản.
- Có thể dùng để tìm kiếm văn bản, thay thế văn bản, kiểm tra tính hợp lệ của dữ liệu, v.v…
- Giúp việc tìm kiếm và thao tác với văn bản trở nên chính xác và mạnh mẽ hơn.
2. Cú pháp cơ bản:
/mẫu/modifiers;
- Ví dụ:
/w3schools/i;
- Trong đó:
w3schools
là mẫu cần tìm (pattern).i
là kiểu tìm kiếm (modifier), trong trường hợp này là tìm kiếm không phân biệt hoa thường (case-insensitive).
3. Sử dụng với các phương thức của String:
- JavaScript cung cấp hai phương thức chính để sử dụng Regex là:
search()
: Tìm kiếm vị trí của mẫu trong chuỗi.replace()
: Thay thế một phần của chuỗi bằng mẫu khác.
4. Ví dụ:
- Tìm kiếm “W3Schools” trong chuỗi:
let text = "Visit W3Schools!";
let n = text.search("W3Schools"); // n sẽ bằng 6
Tìm kiếm “w3schools” không phân biệt hoa thường:
let text = "Visit W3Schools!";
let n = text.search(/w3schools/i); // n sẽ bằng 6
Thay thế “Microsoft” bằng “W3Schools”:
let text = "Visit Microsoft!";
let result = text.replace("Microsoft", "W3Schools");
Thay thế “microsoft” (không phân biệt hoa thường) bằng “W3Schools”:
let text = "Visit Microsoft!";
let result = text.replace(/microsoft/i, "W3Schools"); // result sẽ là "Visit W3Schools!"
5. Các ký tự đặc biệt (Metacharacters):
- Dùng để biểu thị các ý nghĩa đặc biệt trong Regex.
- Ví dụ:
\d
: Bất kỳ chữ số nào.\s
: Bất kỳ khoảng trắng nào.\b
: Đầu hoặc cuối của một từ.
6. Các bộ định lượng (Quantifiers):
- Dùng để xác định số lần xuất hiện của một ký tự hoặc mẫu.
- Ví dụ:
n+
: Tìm ít nhất một lần ký tự n.n*
: Tìm zero hoặc nhiều lần ký tự n.n?
: Tìm zero hoặc một lần ký tự n.
7. Đối tượng RegExp:
- Cung cấp các phương thức để sử dụng Regex một cách linh hoạt hơn.
- Bao gồm các phương thức như:
test()
: Kiểm tra xem mẫu có tồn tại trong chuỗi không.exec()
: Trả về kết quả tìm kiếm đầu tiên.
8. Lưu ý:
- Regex có thể phức tạp và khó hiểu nếu mới bắt đầu.
- Có nhiều tài liệu và hướng dẫn để học về Regex.
- Nên bắt đầu với những mẫu đơn giản và gradually tăng độ phức tạp.
Hy vọng giải thích này giúp bạn hiểu rõ hơn về biểu thức chính quy trong JavaScript.