簡體   English   中英

URL驗證正則表達式

[英]URL Validation Regex

據我所知,還有很多其他與標題類似的問題,但是我問這個問題的主要原因是我希望我的驗證盡可能完美。 這是我的解釋,哪個URL應該有效

http:// (如果提供,則匹配,否則跳過), domain.com (應匹配並返回驗證) subdomain.domain.com (應匹配並返回驗證) www.com (應返回false) http://www.com (應該返回false)

我根據自己的需要搜索了很多關於完美正則表達式的內容,但沒有成功,因此,我為什么要發表自己的看法,並在此處發布信息,以了解除http:// localhost之外,其他任何有效URL都會跳過還是不跳過。 如果是的話,請糾正我。

圖案:

((?:http | https | ftp)://)?(?:www。)?((?!www)[A-Z0-9] [A-Z0-9_-] *(?:。[A -Z0-9] [A-Z0-9 _-] *)+):?(\\ d +)?/?

我知道這實際上並不能直接回答您的問題,但是除了REGEX之外,您還可以使用帶有標志FILTER_VALIDATE_URL的filter_var() ,如果URL有效,則返回URL,否則返回FALSE:

   var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL));
   // string(18) http://example.com

您可以在此處閱讀此功能使用的過濾器,尤其是有關VALIDATE_URL過濾器使用的標志的最后一行。

我實際上不知道它是如何在內部實現的,但是我想它比在野外互聯網中可以找到的許多正則表達式更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM