Как проверить, является ли строка допустимым URL-адресом HTTP?
есть Uri.IsWellFormedUriString
и Uri.TryCreate
методы, но они, кажется, вернуть true
для пути к файлам и т. д.
Как проверить, является ли строка допустимым (не обязательно активным) HTTP-URL для целей проверки ввода?
6 ответов:
попробуйте это, чтобы проверить 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);
этот метод отлично работает как в http, так и в https. Только одна строка:)
if (Uri.IsWellFormedUriString("https://www.google.com", UriKind.Absolute))
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 }
обновление: (одна строка кода) Спасибо @GoClimbColorado
public static bool CheckURLValid(this string source) => Uri.TryCreate(source, UriKind.Absolute, out Uri uriResult) && uriResult.Scheme == Uri.UriSchemeHttps;
использование:
string url = "htts://adasd.xc."; if(url.CheckUrlValid()) { //valid process }