确定Url是vb的绝对值还是相对值

Ben*_*Ben 9 .net vb.net

我试图在vb中确定URL是绝对的还是相对的.我敢肯定有一些库可以做到这一点,但我不确定哪个.基本上我需要能够分析一个字符串,如'relative/path'和' http://www.absolutepath.com/subpage ',并确定它是绝对的还是相对的.提前致谢.

-ben

bdu*_*kes 18

您可以使用该Uri.IsWellFormedUriString方法,该方法将a UriKind作为参数,指定您是检查绝对还是相对.

bool IsAbsoluteUrl(string url) {
    if (!Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute)) {
        throw new ArgumentException("URL was in an invalid format", "url");
    }
    return Uri.IsWellFormedUriString(url, UriKind.Absolute);
}

IsAbsoluteUrl("http://www.absolutepath.com/subpage"); // true
IsAbsoluteUrl("/subpage"); // false
IsAbsoluteUrl("subpage"); // false
IsAbsoluteUrl("http://www.absolutepath.com"); // true
Run Code Online (Sandbox Code Playgroud)

  • 如果您要检查URL是否将用户发送到其他域,则会失败.它不处理协议相关的URL.`// gmail.com`被认为是System.Uri的相对而非绝对.浏览器将采用当前的方案/协议,但System.Uri不处理该情况. (4认同)