Вы можете использовать
/https?:\/\/(myzcloud\.(?:me|pro))\/(en\/)?album\/\d+\/[-\w]+/
Если вам нужно сопоставить всю строку, добавьте ^
в начале и $
в конце:
/^https?:\/\/(myzcloud\.(?:me|pro))\/(en\/)?album\/\d+\/[-\w]+$/
См. regex demo
ПРИМЕЧАНИЯ
- Все литеральные точки в шаблоне, которые находятся вне классов символов, должны быть экранированы
(myzcloud.me|myzcloud.pro)
= (myzcloud\.(?:me|pro))
, нет необходимости повторять идентичные части шаблона - Преступник! Ваш
\/(|en)\/
опционально соответствует en
, но если он отсутствует, шаблон ожидает, что //
появится в строке. Один /
должен быть перемещен в группу, но в JS имеет смысл просто использовать необязательную группу (en\/)?
.