Регулярное выражение для URL - PullRequest
0 голосов
/ 11 ноября 2010

У меня есть одно приложение asp.net, в котором у меня есть одно текстовое поле для ввода URL домашней страницы. По умолчанию это текстовое поле содержит http://. Если пользователь ввел дополнительный текст, а не существующий, он выполнит проверку. В противном случае оставьте все как есть. Как это возможно? Пожалуйста, помогите мне, предоставив регулярное выражение для решения этой проблемы.

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Проверка URL-адресов - задача не из легких, как может показаться. При написании таких регулярных выражений вы должны иметь в виду все ограничения. Я никогда не видел выражения, способного проверить, является ли URL действительным или нет. F.I. Есть URL-адреса с локальными символами, такими как http://президент.рф, и они не действительны в соответствии с регулярным экспериментом, предложенным MSDN. Однако может быть полезно взглянуть на Apache UrlValidator

1 голос
/ 11 ноября 2010

Попробуйте это выражение

^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$

С http://msdn.microsoft.com/en-us/library/ff650303.aspx#paght000001_commonregularexpressions

Или этот механизм в коде

public bool IsValidUri(string uri)
{
  Uri validatedUri;
  return Uri.TryCreate(uri, UriKind.RelativeOrAbsolute, out validatedUri);
}

Опубликовано 0xA3 здесь Есть ли валидатор URL в .Net?

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...