这是Uri。IsWellFormedUriString和Uri。TryCreate方法,但它们似乎为文件路径返回true,等等。
我如何检查字符串是否是一个有效的(不一定是活动的)HTTP URL用于输入验证目的?
这是Uri。IsWellFormedUriString和Uri。TryCreate方法,但它们似乎为文件路径返回true,等等。
我如何检查字符串是否是一个有效的(不一定是活动的)HTTP URL用于输入验证目的?
当前回答
此方法在http和https中都可以正常工作。只有一行:)
if (Uri.IsWellFormedUriString("https://www.google.com", UriKind.Absolute))
MSDN: IsWellFormedUriString
其他回答
作为使用正则表达式的另一种方法,这段代码使用Uri。TryCreate每个OP,但也检查结果,以确保它的Scheme是http或https之一:
bool passed =
Uri.TryCreate(url, UriKind.Absolute, out Uri uriResult)
&& (uriResult.Scheme == Uri.UriSchemeHttp
|| uriResult.Scheme == Uri.UriSchemeHttps);
试着验证HTTP url (uriName是你想测试的URI):
Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult)
&& uriResult.Scheme == Uri.UriSchemeHttp;
或者,如果你想同时接受有效的HTTP和HTTPS url(根据J0e3gan的评论):
Uri uriResult;
bool result = Uri.TryCreate(uriName, UriKind.Absolute, out uriResult)
&& (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
Uri uri = null;
if (!Uri.TryCreate(url, UriKind.Absolute, out uri) || null == uri)
return false;
else
return true;
这里url是你要测试的字符串。
返回bool值:
Uri.IsWellFormedUriString(a.GetAttribute("href"), UriKind.Absolute)
在Uri。TryCreate你可以检查Uri。Scheme查看它是否HTTP(s)。