Regex kiểm tra URL
Cập nhật: 24 Tháng 6, 2026
Dùng biểu thức /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)/gi để Trích xuất liên kết http/https kèm tham số truy vấn trong văn bản. Trang này có công cụ kiểm tra trực tiếp cùng 6 ví dụ đã được đối chiếu (3 hợp lệ, 3 không hợp lệ).
edit_note Văn bản kiểm tra
analytics Kết quả
https://tools.vietsolutions.net.vn/regex
http://example.com
https://www.google.com/search?q=regex
vietsolutions.net.vn
ftp://server
chỉ là chữ
code Dùng trong code
const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)/gi;
const matches = str.match(re);
preg_match_all('~https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+\~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.\~#?&\/=]*)~i', $str, $matches);
print_r($matches);
import re
pattern = re.compile(r"https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)", re.IGNORECASE)
matches = pattern.findall(text)
re := regexp.MustCompile(`https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)`)
matches := re.FindAllString(str, -1)
Trang này cung cấp biểu thức chính quy /https?://(www.)?[-a-zA-Z0-9@:%._+~#=]{1,256}.[a-zA-Z0-9()]{1,6}b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/gi để Trích xuất liên kết http/https kèm tham số truy vấn trong văn bản. Bạn có thể kiểm tra trực tiếp với dữ liệu của mình bằng công cụ phía trên, xem các ví dụ đã đối chiếu và sao chép sẵn mã cho JavaScript, PHP, Python và Go. Mẫu thuộc nhóm Web & Mạng.
tips_and_updates Ghi chú & lưu ý chuyên môn
Bắt URL bắt đầu bằng http hoặc https, kèm tên miền, phụ con đường và chuỗi truy vấn. Nhóm 1 bắt tiền tố www., nhóm 2 bắt phần đường dẫn + query. Đây là pattern để TRÍCH URL từ một đoạn văn bản; nếu bạn cần phân tích từng thành phần (scheme/host/path/query) thì nên dùng đối tượng URL của trình duyệt thay vì regex.
Câu hỏi thường gặp
Regex kiểm tra URL như thế nào? expand_more
Biểu thức "https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/=]*)" khớp được những ví dụ nào? expand_more
Dùng biểu thức này trong JavaScript ra sao? expand_more
Mẫu regex liên quan: Web & Mạng
Xem tất cảRegex cổng mạng (port 0–65535)
^([1-9]\d{0,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$
Regex địa chỉ IPv6 (dạng đầy đủ)
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
Regex thẻ HTML
<\/?([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>
Regex địa chỉ IPv4
^((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$
Regex mã màu HEX
#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b
Regex slug URL thân thiện
^[a-z0-9]+(?:-[a-z0-9]+)*$
Regex hashtag
#[A-Za-z0-9_]+
Regex tên miền (domain)
^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$