Подтвердите путь URL

Я пытаюсь проверить URL без домена, только путь и параметры.

Регулярное выражение, которое я использую, выполняет большую часть работы, но в нем есть некоторые ошибки, которые я не знаю, как предотвратить (я довольно хорош с regexp):

/^(\/([\w#!:.?+=&%@!\-\/])+)$/i

Следующий пример правильно проверен

/asd.jsp -> true
/asd/asd.jsp -> true
/asd/asd.jsp?bar=baz&inga=42&quux -> true
/asd/asd.jsp?bar=ba z&inga=42&quux -> false

Но это не правильные ulrs, и они тоже дают мне правду:

/asd/asd./jsp -> true :(
/asd/asd.jsp/ -> true :(
/asd./asd.jsp -> true :(
/asd///asd.jsp -> true :(
/asd/asd.jsp&bar=baz?inga=42?quux -> true :(

Вы рекомендуете использовать функцию вместо регулярного выражения?

Большое спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос