Regex kiểm tra URL (http và https)

Dùng /^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/ để kiểm tra xem toàn bộ chuỗi có phải là URL (http và https) hợp lệ hay không. Mọi ví dụ bên dưới đều đã được kiểm thử với mẫu này, và bạn có thể mở chúng trong Regex Tester với các mẫu thử đã được nạp sẵn.

Cập nhật

/^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/
Mở trong Regex Tester
Đầu vàoKết quả
https://example.com✓ Khớp
http://sub.example.co.uk:8080/path?q=1#top✓ Khớp
https://devpack.app/regex-tester✓ Khớp
example.com✗ Không khớp
ftp://example.com✗ Không khớp
https://localhost✗ Không khớp
http://exa mple.com✗ Không khớp

Cách mẫu hoạt động

PhầnÝ nghĩa
^https?Bắt đầu bằng http, theo sau tùy chọn là s
:\/\/Chuỗi :// nguyên văn (dấu gạch chéo được escape cho regex literal trong JavaScript)
[A-Za-z0-9.-]+Tên miền và subdomain
\.[A-Za-z]{2,}Dấu chấm và tên miền cấp cao nhất gồm từ hai chữ cái trở lên
(?::\d{1,5})?Cổng tùy chọn như :8080
(?:\/[^\s]*)?Đường dẫn, chuỗi truy vấn và fragment tùy chọn — bất kỳ nội dung nào đến khoảng trắng
$Kết thúc chuỗi

Ví dụ code

JavaScript

const re = /^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'https?://[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:/[^\s]*)?', value))

PHP

preg_match('/^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/', $value) === 1;

Ghi chú và giới hạn

Để kiểm tra hợp lệ trong JavaScript, new URL(value) bên trong try/catch sẽ chặt chẽ hơn và xử lý mọi trường hợp biên; hãy dùng regex khi bạn cũng muốn yêu cầu http(s) và một tên miền có vẻ công khai. Mẫu này cố ý từ chối localhost và địa chỉ IP đứng riêng.

Câu hỏi thường gặp

Regex cho URL (http và https) là gì?
/^https?:\/\/[A-Za-z0-9.-]+\.[A-Za-z]{2,}(?::\d{1,5})?(?:\/[^\s]*)?$/ — nó khớp toàn bộ chuỗi. Xem bảng phía trên để biết mỗi phần làm gì.
Những ví dụ nào khớp?
Trong các ví dụ đã kiểm thử, những ví dụ khớp là: https://example.com, http://sub.example.co.uk:8080/path?q=1#top, https://devpack.app/regex-tester. Các ví dụ còn lại thì không khớp.
Làm sao để kiểm thử regex này?
Nhấn “Mở trong Regex Tester” — mẫu, cờ và văn bản mẫu sẽ tự động được nạp, và các phần khớp sẽ được tô sáng khi bạn chỉnh sửa.