RegExp валидность URL

311
16 ноября 2017, 06:07
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");

Ребята, что нужно дописать, что бы передача параметров не могла начинаться с &, как во втором примере?

Answer 1

Заменил части пути с \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"));

READ ALSO
Снять выбор с radio button(JavaScript)

Снять выбор с radio button(JavaScript)

Есть 2 radio button в таблицы:

292
Сравнение массивов (javascript , jquery )

Сравнение массивов (javascript , jquery )

Добрый вечер, есть два массива, нужно сделать один массив, но чтобы значения не совпадали, те

522
QIWI API запрос истории платежей

QIWI API запрос истории платежей

Делаю такой запрос (JavaScript)

385
Как сделать круговой прогресс бар на javascript?

Как сделать круговой прогресс бар на javascript?

Как реализовать анимацию кругового прогресс бара на чистом javascript? Интересен момент, как сделать заполнение окружности цветом

294