Пользовательский валидатор Regex - PullRequest
1 голос
/ 21 сентября 2019

Мне нужен пользовательский валидатор для URL с двумя условиями: первое условие - оно начинается с http(s):// второе условие для левой части URL, до первого одиночного слеша (или до конца строки, если одиночный слэш не обнаружен) НЕ ДОЛЖЕНсодержать пробел, но после косой черты (если такой существует) пробел должен быть разрешен, например:

запрещенный URL:

  1. https://www.exam ple.com/
  2. https: //www.example.com/

Разрешенный URL:

https://www.example.com/exam ple http://www.example.com

Я написал выражение Regex ^(?:http(s)?:\/\/)[\S]+\/?, но в примере 1 это не удалось с URL-адресом.

1 Ответ

1 голос
/ 21 сентября 2019

\S соответствует непробельному символу, включая /, поэтому в первом примере он не будет пересекать первый пробел, но вы получите частичное совпадение, потому что нет конечного якоря $

Один из вариантов - сопоставить не косую черту, используя класс отрицательных символов [^/\s]+, не соответствующий символу пробела или /.Затем опционально сопоставьте косую черту и используйте .* для сопоставления с остальной частью строки.

^https?://[^/\s]+(?:/.*)?$

Regex demo

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