skr*_*lyk 0 url jquery-validate
我无法使自定义网址验证规则生效。
我要添加新规则:
jQuery.validator.addMethod("complete_url", function(val, elem) {
// if no url, don't do anything
return /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/.test(val);
});
...
$("#new_website").validate({
rules: {
url: "complete_url",
'website[url]': {
url: true,
required: true}
}
});
Run Code Online (Sandbox Code Playgroud)
但这让我回来
invalid URL
Run Code Online (Sandbox Code Playgroud)
我检查了正则表达式在这里- http://www.rubular.com/。它正在工作,但是失败了我的自定义验证器。
我做错了什么?
小智 6
请不要为此使用正则表达式。甚至不要使用jQuery验证程序使用的正则表达式,将来它可能会更改,您将无法利用更新。这是这样做的方法:
$.validator.addMethod('validUrl', function(value, element) {
var url = $.validator.methods.url.bind(this);
return url(value, element) || url('http://' + value, element);
}, 'Please enter a valid URL');
Run Code Online (Sandbox Code Playgroud)