我试图在vb中确定URL是绝对的还是相对的。我敢肯定有一些库可以做到这一点,但我不确定哪个。基本上我需要能够分析诸如'relative / path'和'http://www.absolutepath.com/subpage'之类的字符串,并确定它是绝对的还是相对的。提前谢谢。
-Ben
答案 0 :(得分:18)
您可以使用Uri.IsWellFormedUriString
方法,该方法以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
答案 1 :(得分:4)
Determine if Absolute or Relative URL更简单answer
bool IsAbsoluteUrl(string url)
{
Uri result;
return Uri.TryCreate(url, UriKind.Absolute, out result);
}
答案 2 :(得分:1)
试试这个:
Uri uri = new Uri("http://www.absolutepath.com/subpage");
Console.WriteLine(uri.IsAbsoluteUri);
修改:如果您不确定地址是否格式正确,则应使用:
static bool IsAbsolute(string address, UriKind kind)
{
Uri uri = null;
return Uri.TryCreate(address, kind, out uri) ?
uri.IsAbsoluteUri : false;
}