正则表达式验证绝对URL或相对URL

时间:2011-03-24 15:17:34

标签: regex url

我需要一个正则表达式来验证绝对URL或相对URL。

  • http://www.example.com应该通过
  • /example/some.pdf应该通过
  • /example.com/some.pdf应该失败
  • 示例应该失败

2 个答案:

答案 0 :(得分:3)

(http://|/)[^ :]+

另外值得注意的是,/example.com/some是一个有效的网址,因为文件夹中可以包含句点,而且并非所有文件都有扩展名。

根据系统的不同,可能会有更多类型的字符添加到否定括号中。

最简单的方法是实际从服务器请求文件元数据,以检查它实际存在的天气,但根本不使用正则表达式。

答案 1 :(得分:0)

正如Konrad Rudolph正确指出的那样:OP中的所有示例都是有效的URL!你知道空字符串也是一个有效的URL吗?这是真的!如果确实想要验证网址,或者我应该说 URI ,那么要阅读的第一个文档是:RFC-3986 - Uniform Resource Identifier (URI): Generic Syntax。我一直在研究这个问题并写了一篇关于这个主题的文章:

Regular Expression URI Validation

请注意,这仅处理通用 URI。您可能希望查看特定于您感兴趣的方案的进一步要求(即HTTP),例如要求主机名是虚拟DNS主机。