Javascript 带有JQuery Vaildate的其他域的电子邮件地址的正则表达式
我需要验证带有额外域的电子邮件地址。我当前使用Javascript 带有JQuery Vaildate的其他域的电子邮件地址的正则表达式,javascript,regex,jquery-validate,Javascript,Regex,Jquery Validate,我需要验证带有额外域的电子邮件地址。我当前使用@email.com验证普通电子邮件,但我需要验证具有@email.email.com的电子邮件。我对正则表达式不够熟悉 $.validator.addMethod('matches', function (value, element, param) { return this.optional(element) || value.match(param); }, 'Please enter a valid value.'); $(fun
@email.com
验证普通电子邮件,但我需要验证具有@email.email.com
的电子邮件。我对正则表达式不够熟悉
$.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.'
}
}
});
});
要将任何(常用)电子邮件与两部分顶级域匹配,如*@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-]
或 - 顶级域部分
将匹配任何单个tld,如\.\w+(\.\w+)
、.com
,以及双tld.net
、.co.uk
、.co.jp
.foo.bar
如果您真的对正确的电子邮件验证感兴趣,那么您应该查看(SCNR:D)这对jquery validate有效,以验证电子邮件是否属于组织。我真的很接近,但我不认为它需要一些东西
(.+@+[A-Za-z0-9._-]+\\.email.com$)|(.+@email.com$)
@安德烈亚斯-你应该把这个(带着一个简短的解释)作为回答。我的简短回答是:不要费心使用正则表达式“验证”电子邮件地址,因为(1)您会弄错并排除有效的电子邮件地址(就像xvatar在该答案中所做的那样)和(2)您必须发送确认测试消息。@Andreas-谢谢,但我已经知道这些网站。我只是很难收到像
@testemail.com
而不是@test.email的电子邮件。com@StephenP-我有一个特定风格的电子邮件,我需要匹配它,它没有看起来那么糟糕。我只是想验证一个特定的电子邮件。那么,也许xvatar的答案就是你想要的。是的,jqueryvalidate已经验证了电子邮件地址,但我正在尝试验证它是否是内部电子邮件。