登录或通过电子邮件发送客户端验证

时间:2014-09-22 09:33:03

标签: jquery validation jquery-validate

我有下一个验证要求:

登录字段 - 可以包含字母数字字符串有效电子邮件

我认为使用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.");

1 个答案:

答案 0 :(得分:1)

由于不存在组合“有效电子邮件或字母数字”的规则,因此您必须使用the addMethod() method自行创建。

否则,the additional-methods.js file中包含一个方法调用pattern,您可以在声明此方法时使用自定义正则表达式作为参数。