如何检查给定的字符串是否是有效的URL地址?
我对正则表达式的知识是基本的,不允许我从我已经在网上看到的数百个正则表达式中进行选择。
如何检查给定的字符串是否是有效的URL地址?
我对正则表达式的知识是基本的,不允许我从我已经在网上看到的数百个正则表达式中进行选择。
当前回答
这里有一个很好的规则,它涵盖了所有可能的情况:端口,参数等等
/(https?:\/\/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9])(:?\d*)\/?([a-z_\/0-9\-#.]*)\??([a-z_\/0-9\-#=&]*)/g
其他回答
要将URL匹配到域:
(^(\bhttp)(|s):\/{2})(?=[a-z0-9-_]{1,255})\.\1\.([a-z]{3,7}$)
可以简化为:
(^(\bhttp)(|s):\/{2})(?=[a-z0-9-_.]{1,255})\.([a-z]{3,7})
后者不检查结束行的结束,以便稍后使用它创建具有完整路径和查询字符串的完整URL。
这是一个相当老的线程,现在的问题要求一个基于正则表达式的URL验证器。我在寻找完全相同的东西时也碰到了这条线。虽然很可能编写一个真正全面的正则表达式来验证url。我最终选择了另一种方法——使用PHP的parse_url函数。
如果url无法解析,则返回布尔false。否则,它返回方案、主机和其他信息。这对于一个全面的URL检查本身可能还不够,但是可以深入到进一步的分析中。如果目的仅仅是捕捉拼写错误、无效方案等。这完全足够了!
获取URL的部分(Regex)这篇文章讨论了解析URL以识别其各个组件。如果您想检查URL是否格式良好,它应该足以满足您的需求。
如果你需要检查它是否有效,你最终将不得不尝试访问另一端的任何东西。
不过,一般来说,使用框架或其他库提供的函数可能会更好。许多平台都包含了解析url的函数。例如,有Python的urlparse模块,在。net中你可以使用System模块。类的构造函数,作为验证URL的一种方法。
简单的FILTER_VALIDATE_URL有什么问题?
$url = "http://www.example.com";
if(!filter_var($url, FILTER_VALIDATE_URL))
{
echo "URL is not valid";
}
else
{
echo "URL is valid";
}
我知道这不是确切的问题,但当我需要验证url时,它为我做了工作,所以认为它可能对其他遇到这篇文章寻找同样事情的人有用
这个很适合我。(https ? | ftp): / / (www \ d ? | [a-zA-Z0-9] +) ? \ [a-zA-Z0-9。 -]+(\:|\.)([ a-zA-Z0-9) + | (\ d +)?)([/?:].*)?