C# — проверка URL-адресов веб-сайтов. IsWellFormedUriString всегда возвращает true ⇐ C#

Место общения программистов C#
Anonymous
C# — проверка URL-адресов веб-сайтов. IsWellFormedUriString всегда возвращает true

Сообщение Anonymous »

Мне нужна проверка, которая возвращает true для следующих URL-адресов веб-сайтов:
Мне нужно убедиться, что веб-сайты, начинающиеся с www. выдать за правду. Также google.com должен возвращать true.

Код: Выделить всё

www.google.com

google.com

http://google.com

http://www.google.com

https://google.com

https://www.google.com
Я использовал IsWellFormedUriString и ничего не добился. Он продолжает возвращать истину. Я также использовал Uri.TryCreate и тоже не могу заставить его работать. На Stack Overflow так много написано по этой теме, но ни один из них не работает. Должно быть, я делаю что-то не так.

Вот моя функция ValidateUrl:

Код: Выделить всё

   public static bool ValidateUrl(string url)
{
try
{
if (url.Substring(0, 3) != "www." && url.Substring(0, 4) != "http" && url.Substring(0, 5) != "https")
{
url = "http://" + url;
}
if (Uri.IsWellFormedUriString(url, UriKind.RelativeOrAbsolute))
{
Uri strUri = new Uri(url);
return true;
}
else
{
return false;
}
}
catch (Exception exc)
{
throw exc;
}
}
И я называю это так:

Код: Выделить всё

if (ValidateUrl(url) == false) {
validationErrors.Add(new Error()
{
fieldName = "url",
errorDescription = "Url is not in correct format."
});
}
Он возвращает true для htp:/google.com. Я знаю, что на этом сайте много информации по этой теме, но я вчера весь день пытался заставить это работать, и ничего не получилось.

Подробнее здесь: https://stackoverflow.com/questions/572 ... rning-true

Вернуться в «C#»