我需要验证包含额外域名的电子邮件地址。我目前使用@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.'
}
}
});
});
答案 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$)