我有一个新的验证要求,我正试图围绕最好的方法来完成。
我有一个字段,可以是电子邮件地址或用户名。
要求已经询问如果用户输入电子邮件,将运行电子邮件验证(内置方法),否则验证将是带有基本标点符号的字母。
所以我的想法是 - 如果输入@,运行电子邮件验证 - 否则运行带有基本标点符号的字母 - 但我正在寻找可能的其他方法的输入。
另外,在这种情况下,如果/ else,您将如何编写两部分验证?
答案 0 :(得分:1)
$("#frm").validate({
rules: {
username: {
required: true,
usernameemail: true,
maxlength: 100
}
}
});
$.validator.addMethod("usernameemail", function(value, element) {
if (this.optional(element)) // return true on optional element
return true;
valid = true;
if (value.indexOf("@") > 0) {
valid = valid && $.validator.methods.email.call(this, value, element);
} else {
valid = valid && $.validator.methods.username.call(this, value, element);
}
return valid;
}, 'Please provide a valid username or email');
$.validator.addMethod("username", function(value, element) {
return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
}, "Username must contain only letters, numbers, or dashes.");
您需要将用户名正则表达式更改为您需要的内容,希望这有助于