Помимо экранирования прямой косой черты после http://, вы избегаете обратной косой черты в классе символов.\\w
будет соответствовать обратной косой черте и w
.Эта часть \\-\\
будет соответствовать диапазону от \ до \, который будет соответствовать обратной косой черте.
Это будет соответствовать, например, http://w\.:/${}=?&
Кроме того, вы можете внести несколько корректировок вваше регулярное выражение
(s){0,1}
можно записать как https?
- Класс символов
[\\w\\-\\.:/\$\{\}=\?&]
можно записать как [\w.:/${}=?&-]
без экранирования .$?
и дефис может бытьперешел в начало или в конец.\\
будет соответствовать обратной косой черте. - Если вам не нужна группа захвата
()
, вы можете пропустить это и использовать только чередование |
- Вы можете использовать
/i
чтобы получить нечувствительное к регистру совпадение и класс персонажа стал бы [a-z]
- Избегайте точки
\.
, чтобы буквально соответствовать ей
Например:
const regex = /^https?:\/\/[\w.:/${}=?&-]+|{\$[a-z]+\.[a-z]+}$/i;
См. Демоверсию Regex