Как добавить запрет на ввод Русских букв в regex http/https
Есть две регулярки для проверки http/https - ссылок.
Они работают, но их нужно немного дорботать.
1 - ^(http|https|www)://.*$
2 - ^(ht{2}p|ht{2}ps|w{3})://.*$
Подскажите как мне добавить запрет на ввод русских букв в ссылку и запретить такой формат ссылки:
https://://raw.githubusercontentвв.com - Ссылка с доп :// и Русские буквы вв их нужно запретить, как это сделать?
Ответы (2 шт):
Этими регулярками можно проверить только как раз то, что строка начинается на http/https и все. После http/https идет //.*$, где . это любой символ, поэтому и попадает любые последовательности, включая ://.
В этом ответе я приводил несколько выражений для проверки URL. Может стоит взять одну из них за основу.
Небольшим примером проверки может служить следующее выражение
(http|https)://([a-zA-Z\d./])+
В [] перечислены все символы-алтернативы, которые могут встречаться, + означает, что такая последовательность должна быть минимум один раз
Для проверки на валидность URL можете воспользоваться Uri.IsWellFormedUriString
Например:
Uri.IsWellFormedUriString("https://www.google.com", UriKind.Absolute)
> true
Uri.IsWellFormedUriString("https://://raw.githubusercontentвв.com", UriKind.Absolute)
> false