[MẸO] Biểu thức chính quy thường dùng
By hientd, at: 14:22 Ngày 02 tháng 8 năm 2023
Thời gian đọc ước tính: __READING_TIME__ minutes
![[TIPS] Widely-used REGEX](/media/filer_public_thumbnails/filer_public/24/ab/24ab7b15-657c-4f4b-9296-d036fd89a6a4/useful_string_regex.png__1500x900_crop_subsampling-2_upscale.png)
![[TIPS] Widely-used REGEX](/media/filer_public_thumbnails/filer_public/24/ab/24ab7b15-657c-4f4b-9296-d036fd89a6a4/useful_string_regex.png__400x240_crop_subsampling-2_upscale.png)
Nếu bạn từng cần xác thực địa chỉ email, trích xuất số từ chuỗi hoặc đảm bảo mật khẩu đáp ứng các tiêu chí cụ thể, thì bạn biết sức mạnh của biểu thức chính quy (regex). Thoạt đầu chúng có vẻ đáng sợ, nhưng một khi bạn đã nắm được, chúng rất hữu ích.
Trong bài đăng này, tôi đã thu thập một số mẫu regex phổ biến và hữu ích nhất mà tôi thường xuyên sử dụng trong các dự án của mình. Cho dù bạn là một nhà phát triển dày dạn kinh nghiệm hay mới bắt đầu, những mẫu này sẽ giúp bạn tiết kiệm thời gian và làm cho cuộc sống lập trình của bạn dễ dàng hơn
Xác thực Email
Khớp với địa chỉ email. Nó bắt đầu bằng các ký tự chữ số (bao gồm .
, _
, %
, +
, -
), theo sau là ký hiệu @
, tên miền, một dấu chấm và tên miền cấp cao (ít nhất hai chữ cái).
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Xác thực số điện thoại (Mỹ)
Khớp với số điện thoại của Mỹ có mã quốc gia tùy chọn. Nó xử lý các định dạng như +1 (123) 456-7890
, (123) 456-7890
, 123-456-7890
, v.v.
^(\+\d{1,2}\s?)?(\(\d{3}\)|\d{3})[-.\s]?\d{3}[-.\s]?\d{4}$
Xác thực URL
Khớp với URL HTTP/HTTPS có www
tùy chọn. Nó hỗ trợ tên miền có tên miền phụ và dấu gạch chéo cuối tùy chọn.
^https?:\/\/(www\.)?[a-zA-Z0-9-]+(\.[a-zA-Z]{2,})+\/?$
Xác thực ngày (YYYY-MM-DD)
Khớp với ngày ở định dạng YYYY-MM-DD
, đảm bảo giá trị tháng (01-12) và ngày (01-31) hợp lệ.
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
Xác thực mã bưu chính (Mỹ)
Khớp với mã bưu chính của Mỹ ở định dạng 12345
hoặc 12345-6789
.
^\d{5}(-\d{4})?$
Xác thực địa chỉ IPv4
Khớp với địa chỉ IPv4, cho phép các giá trị từ 0.0.0.0
đến 255.255.255.255
.
^(\d{1,3}\.){3}\d{1,3}$
Mã màu Hex
Khớp với mã màu hex có hoặc không có #
, ở định dạng 3 hoặc 6 chữ số.
^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
Xác thực tên người dùng
Khớp với tên người dùng dài từ 3 đến 16 ký tự, chứa chữ cái, số, dấu chấm, dấu gạch dưới và dấu gạch ngang.
^[a-zA-Z0-9._-]{3,16}$
Xác thực mật khẩu
Khớp với mật khẩu có ít nhất một chữ thường, một chữ hoa, một chữ số, một ký tự đặc biệt và ít nhất 8 ký tự.
(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}
Cắt bỏ khoảng trắng
Khớp với khoảng trắng đầu hoặc cuối trong chuỗi, hữu ích để cắt bỏ khoảng trắng khỏi dữ liệu đầu vào.
^\s+|\s+$