带有JQuery Validate的其他域的电子邮件地址的RegEx

时间:2012-05-31 21:09:05

标签: javascript regex jquery-validate

我需要验证包含额外域名的电子邮件地址。我目前使用@email.com验证普通电子邮件,但我需要验证包含@email.email.com的电子邮件。我对RegEx不够熟悉。

$.validator.addMethod('matches', function (value, element, param) {
    return this.optional(element) || value.match(param);
},
'Please enter a valid value.');

$(function() {

 $("form").validate({

            rules: {
                email: {
                    required: true,
                    email: true,
                    matches: '.+@email.com'
                }
            }, messages: {
                email: {
                    matches: 'Must be a email.com e-mail address.'
                }
            }
        });
  });

2 个答案:

答案 0 :(得分:1)

要将任何(通常)电子邮件与两部分顶级域名匹配,例如*@google.co.uk,您可以使用RegExp,它匹配域部分中的2-3个字部分:

var emailRegExp = /[a-zA-Z0-9._-]@[a-zA-Z0-9-]+\.\w+(\.\w+)?/
...
// in your code
matches: emailRegExp

RegExp解释说:

  • 名称部分[a-zA-Z0-9._-]将匹配任何常用字符,以及._-

  • 域名部分[a-zA-Z0-9-]与名称大致相同,但没有._

  • 顶级域部分\.\w+(\.\w+)?将匹配.com.net等任何单个tld以及双.co.uk.co.jp.foo.bar

RegExp很短。 如果您对正确的电子邮件验证感兴趣,请查看RFC822-Spec(SCNR:D)

答案 1 :(得分:0)

这适用于jquery验证以验证该电子邮件属于该组织。我非常接近,但我认为它不需要一些东西。

(.+@+[A-Za-z0-9._-]+\\.email.com$)|(.+@email.com$)