javascript jquery regex用于验证URL

时间:2011-12-20 20:13:52

标签: javascript jquery regex 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时,它表示网址无效。当我启用#时,正则表达式无法验证某些验证。所以,任何人都可以提出修改此正则表达式的建议,以验证#,它位于网址内。

我提到regular expressions how to validate a URL来获得这个正则表达式。

感谢名单。

1 个答案:

答案 0 :(得分:0)

^(([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 ......