var re = /^(https?:\/\/)?([0-9a-z\.-]+)[^-]\.([a-z]{2,9}\.?)([\/#].\S*)*$/i;
re.test("http://zcontest.ru/dir%201/dir_2/program.ext?var1=x&var2=my%20value");
re.test("http://zcontest.ru/dir%201/dir_2/program.ext&var1=x&var2=my%20value");
Ребята, что нужно дописать, что бы передача параметров не могла начинаться с &, как во втором примере?
Заменил части пути с \S* - любых непробельных символов на [^\/\?]+ - не слеши/не вопросы.
Добавил требование наличия вопроса \? после всего этого.
var re = /^(https?:\/\/)?([0-9a-z\.-]+)[^-]\.([a-z]{2,9}\.?)(\/[^\/\?]+)*\?/i;
console.log(re.test("http://zcontest.ru/dir%201/dir_2/program.ext?var1=x&var2=my%20value"));
console.log(re.test("http://zcontest.ru/dir%201/dir_2/program.ext&var1=x&var2=my%20value"));
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости