如何检查一个string是否是一个有效的HTTP URL?

Uri.IsWellFormedUriStringUri.TryCreate方法,但他们似乎返回true的文件path等

如何检查string是否是一个有效的(不一定是有效的)HTTP URL用于inputvalidation目的?

试试这个来validationHTTP URL( uriName是你想testing的URI):

 Uri uriResult; bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp; 

或者,如果您想同时接受HTTP和HTTPSurl(根据J0e3gan的评论):

 Uri uriResult; bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult) && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps); 

这个方法在http和https中都能正常工作。 只有一行:)

 if (Uri.IsWellFormedUriString("https://www.google.com", UriKind.Absolute)) 

MSDN: IsWellFormedUriString

  public static bool CheckURLValid(this string source) { Uri uriResult; return Uri.TryCreate(source, UriKind.Absolute, out uriResult) && uriResult.Scheme == Uri.UriSchemeHttp; } 

用法:

 string url = "htts://adasd.xc."; if(url.CheckUrlValid()) { //valid process } 

Uri.TryCreate之后,您可以检查Uri.Scheme以查看它是否是HTTP(s)。

 Uri uri = null; if (!Uri.TryCreate(url, UriKind.Absolute, out uri) || null == uri) return false; else return true; 

这里的url是你必须testing的string。

这将返回布尔:

 Uri.IsWellFormedUriString(a.GetAttribute("href"), UriKind.Absolute)