Tôi có regex sau để kiểm tra xem nếu URL là hợp lệ:Thay đổi regex để cho phép địa chỉ IP khi kiểm tra URL?
preg_match('/^(http(s?):\/\/)?(www\.)?+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/i', $url);
Tôi muốn thay đổi phần này [a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})
(ít nhất tôi hy vọng nó là một phần đậm này) để thể là một địa chỉ IP hoặc này phần nổi bật.
Hiện tại, regex khá tốt đối với tôi vì nó tìm thấy URL không chính xác - mặc dù tôi tin rằng điều này sẽ bắt đầu không hoạt động chính xác khi chính sách miền mới từ ICANN hoạt động (tức là Google có thể muốn url http://search.google - thay vì http://google.com cho tìm kiếm)
nhưng dù sao, tôi muốn thêm khả năng cho phép địa chỉ IP để cũng là URL hợp lệ, nhưng tôi không chắc chắn làm thế nào để yếu tố đó vào regex
Nếu có ai có thể giúp một tay, thì điều đó thật tuyệt vời!
Bạn có thể muốn sử dụng: ['filter_var ('http://example.com', FILTER_VALIDATE_URL)'] (http://php.net/manual/en/function.filter-var.php) – NullUserException
I đã không nhận thức được rằng PHP đã xây dựng trong bộ lọc URL - cảm ơn vì đã chỉ ra điều đó ... – MrJ