【发布时间】:2016-10-31 15:26:55
【问题描述】:
我有一个使用 jquery validate 运行的表单。他们使用的 url 方法需要将 http 添加到 url,我希望允许用户在没有 http 和/或 www 的情况下提交 url。我使用了添加方法:
jQuery.validator.addMethod("urlRegex", function(value, element) {
return this.optional(element) || /^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+\.)+[a-z]{2,}|localhost|(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])))(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/.test(value);
}, "PLEASE ENTER A VAILD WEBSITE ");
根据规则我添加了新方法:
rules: {
name: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
website: {
required: true,
urlRegex: true
},
}
但它仍然需要 http:\ 在 URL 的开头。我在 regex101.com 上检查了这个正则表达式,它与 example.com 等 URL 匹配,所以我不确定问题出在正则表达式还是其他问题上。
谢谢。
【问题讨论】:
标签: jquery regex client-side-validation