【发布时间】:2011-10-17 13:13:56
【问题描述】:
据我所知,还有许多其他类似于标题的问题,但我提出这个问题的主要原因是我希望我的验证尽可能完美。这是我的解释哪个 URL 应该有效
http://(如果给定则匹配,否则跳过),
domain.com(应该匹配并返回验证)
subdomain.domain.com(应该匹配并返回验证)
www.com(应该返回假)
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+)?/?
【问题讨论】:
-
http://在上述正则表达式中是可选的 -
我不确定您要匹配或不匹配的内容与最常用的 URL 匹配表达式不同——
www.com和http://www.com是完全有效的 URL,每个都转到一个实时网站。你想匹配http://localhost;是否要匹配 IP 地址? -- 如果您告诉我们您使用它的目的,它可能会很有帮助。
标签: php regex validation url