Javascript JQuery регулярное выражение для проверки URL - PullRequest
1 голос
/ 21 декабря 2011

Я использую следующее регулярное выражение для проверки URL,

jQuery.validator.addMethod("url_validation", function (value, element) {
return this.optional(element) || /^(([http|https|HTTPS|HTTP]+:\/\/))?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/i.test(value);
}, "error");

Это регулярное выражение работает нормально. Но когда я проверяю http://www.alfaromeo.com/com/#/home, он говорит, что URL недействителен. Когда я включаю #, регулярное выражение не может проверить некоторые проверки. Так, может кто-нибудь дать предложение изменить это регулярное выражение для проверки #, который находится внутри URL.

Я сослался на регулярных выражений, как проверить URL , чтобы получить это регулярное выражение.

Thanx.

1 Ответ

0 голосов
/ 21 декабря 2011
^(([http|https|HTTPS|HTTP]+:\/\/))?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([#-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$

Я изменил

(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)

до

(\/([#-+_~.\d\w]|%[a-fA-f\d]{2,2})*)

Несмотря на это, не ожидайте, что это сработает на каждом URL, который вы можете на него добавить ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...