我有下一个验证要求:
登录字段 - 可以包含字母数字字符串或有效电子邮件。
我认为使用jQuery验证插件,但无法找到如何实现此OR条件的任何信息。
有一种方法可以使用复杂的正则表达式(例如/^[a-zA-Z0-9]+$|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,6})+$/
),但它看起来不是一个优雅的解决方案。
有更好的方法吗?
UPD:我最终添加了自定义方法:
function alphanumericRegex(value) {
return /^[a-z0-9]+$/i.test(value);
}
function emailRegex(value) {
return /^([a-z0-9_\.\-])+\@(([a-z0-9\-])+\.)+([a-z0-9]{2,6})+$/i.test(value);
}
$.validator.addMethod("loginEmail", function(value, element) {
return this.optional(element) || alphanumericRegex(value) || emailRegex(value);
}, "Please enter letters, numbers or a valid email.");
答案 0 :(得分:1)
由于不存在组合“有效电子邮件或字母数字”的规则,因此您必须使用the addMethod()
method自行创建。
否则,the additional-methods.js
file中包含一个方法调用pattern
,您可以在声明此方法时使用自定义正则表达式作为参数。