Tìm các phần tử của 1 chuỗi match với Regular expressions (Regex)
Trong Javascript, chúng được tạo ở giữa các dấu gạch chéo /.../
hoặc được instance bởi new RegExp()
và sau đó được sử dụng trong các method như match()
, test()
, replace()
.
Match các ký tự riêng lẻ hoặc đặt nhiều ký tự trong dấu ngoặc vuông [...]
để match bất kỳ ký tự nào phù hợp
Thêm flag
tùy chọn vào cuối Regex để sửa đổi cách thức hoạt động
i (insensitive)
: không phân biệt chữ hoa, chữ thường.m (multi line)
: khi có ^ và $ thì ^ sẽ là bắt đầu 1 dòng và $ là kết thúc 1 dòng trong chuỗi, nếu không có flag m thì ^ và $ là bắt đầu và kết thúc của cả chuỗi.g (global)
: tìm tất cả các đoạn ký tự khớp với mẫu tìm kiếm, nếu không có flag g thì việc tìm kiếm sẽ dừng lại ở lần khớp đầu tiên.
Sử dụng ^
và $
-
^
Trùng khớp với phần đầu của chuỗi đích. Ví dụ:^a
sẽ trùng khớp với chữ a trong chuỗiabc
. -
$
Trùng khớp với phần cuối của chuỗi đích. Ví dụ:c$
sẽ trùng khớp với chữ c trong chuỗiabc
.
Sử dụng các ký tự đại diện
-
\d
Trùng khớp với 1 ký tự số (digit). -
\D
Ngược lại với\d
. Trùng khớp với 1 ký tự không phải là số (digit). -
\s
Trung khớp với 1 ký tự khoảng trắng (whitespace) bao gồm khoảng trắng tạo ra bởi phím Tab. -
\S
Trùng khớp với 1 ký tự không phải là khoảng trắng (non-whitespace). -
\w
Trùng khớp với các ký tự là từ (word) bao gồm dấu _ (underscore) và chữ số. -
\W
Trùng khớp với các ký tự không phải là từ (non-word) -
\b
Trùng khớp với toàn bộ ký tự đúng trước nó. -
\B
Ngược lại với \b, sẽ không khớp với toàn bộ mà chỉ 1 phần ký tự đứng trước nó.
Chỉ match 1 số ký tự hoặc nhóm nhất định với 1 bộ định lượng
+
Trùng khớp với 1 hoặc nhiều lần ký tự đứng trước nó.*
Trùng khớp với 0 hoặc nhiều lần ký tự đứng trước nó.?
Trùng khớp với 0 hoặc 1 lần ký tự đứng trước nó..
Trùng khớp với 1 ký tự đơn bất kỳ ngoại trừ ký tự ngắt dòng (line-break) và cũng không lấy được ký tự có dấu (unicode).x{n}
Trùng khớp đúng với n lần ký tự đứng trước nó (n >= 0).x{n,}
Trùng khớp với ít nhất n lần ký tự đứng trước nó (n >= 0).x{n, m}
Trùng khớp với ít nhất n lần và nhiều nhất là m lần ký tự đứng trước nó (n >= 0, m >= 0, n <= m).
Sử dụng (...)
để gộp vào cùng 1 nhóm
(...)
Nhóm các ký tự lại.(x|y)
Trùng khớp với x hoặc y.
Sử dụng các ký tự đặc biệt bằng cách sử dụng \
- Các ký tự đặc biệt trong JS regex:
^ $ \. * +? () [] {} |
- Cách sử dụng, ví dụ sử dụng
*
:\*
Match với bất kỳ thứ gì, ngoại trừ ký tự nào đó
[^xyz]
So sánh và không trùng khớp với những ký tự nằm trong khoảng chỉ định. Dấu^
(dấu mũ) nằm trong dấu ngoặc vuông là một dấu phủ định.
Tham khảo:
https://dev.to/chrisachard/intro-to-regex-for-web-developers-2fj4