用于验证 URL 的 javascript jquery 正则表达式

标签 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得到这个正则表达式。

谢谢。

最佳答案

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

关于用于验证 URL 的 javascript jquery 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581343/

相关文章:

javascript - toFixed 不适用于值 3.675

javascript - 使用 Angular 根据单选按钮选项更改按钮文本

javascript - React 子组件可以更改存储在其父组件中的数据吗?

REGEX 匹配//但不是 ://

php - 在 PHP 中编译正则表达式

javascript - 与 sanic websockets 进行双向通信,无需永远等待

javascript - 如何一次只显示一个文本框并单击下一步显示下一个输入字段

javascript - javascript/jquery 表单的随机数

javascript - 滚动时更改导航文本和 Logo 颜色

Hive 中的 regexp_extract 参数