简体   繁体   English

javascript jQuery正则表达式,用于验证URL

[英]javascript jquery regex for validate a URL

I'm using following regex for validate a 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");

This regex working fine. 这个正则表达式工作正常。 But when I validate http://www.alfaromeo.com/com/#/home , it says the url is invalid. 但是当我验证http://www.alfaromeo.com/com/#/home时 ,它说url无效。 When I enable #, the regex fail to validate some validations. 当我启用#时,正则表达式无法验证某些验证。 So, can anyone give a suggestion to modify this regex to validate #, which is inside a url. 因此,任何人都可以提出修改此正则表达式的建议,以验证网址中的#。

I refered regular expressions how to validate a URL to get this regex. 我提到了正则表达式如何验证URL以获取此正则表达式。

Thanx. 谢谢

^(([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 changed 我变了

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

to

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

Even so, don't expect it to work on every URL you might throw at it... 即使这样,也不要指望它能在您可能会抛出的每个URL上起作用...

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM