如何检查一个string是否是一个有效的HTTP URL?
有Uri.IsWellFormedUriString
和Uri.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)