RegEx № 2 от "." (точка) символы могут появляться вместе в URL - PullRequest
0 голосов
/ 11 апреля 2020

Нужна помощь для ввода URL в javascript, вот мои требования:

<br>

- starts with "https://" or "http://"<br>
- no "." after "https://" or "http://"<br>
- ends with ".com"<br>
- no 2 "." characters can appear together<br>

Это мое выражение: "((^https:\/\/[^.])|(^http:\/\/[^.]))(([\w\d#/:.])*)(\.com)"

Первые 3 требования работают, но я Кажется, не могу заставить работать последний.

Ожидаемые пропуски:
http://www.google.com
https://www.facebook.com

Ожидаемые случаи отказа:
http://.ww..google.com
www.google.com
http://www..google.com
https://www.google..com

1 Ответ

0 голосов
/ 11 апреля 2020

Вы можете использовать

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

По частям

  • https?:\/\/ Соответствие http (необязательно) и ://
  • [^.\s]+ Совпадение с любым символом, кроме . или пробельного символа
  • (?: Группа без захвата
    • \.[^.\s]+ Совпадение . и 1+ раз с любым символом, кроме a. или символ пробела
  • )*\.com Закрыть группу и сопоставить .com
  • $ Конец строки

Regex demo

Эта часть [^.\s] будет соответствовать любому символу, кроме точечного или пробельного символа, и является широким соответствием. Вы можете сузить его, например, до [\w#\/:]

Примечание , что \w также соответствует \d

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