$('#reg_submit').click(function () {
var reg_email = $('#reg_email').val();
var errorMessage = '';
if (reg_email == '') {
errorMessage = "please enter email";
$('#msg_regemail').html(errorMessage).show();
} else {
if ((!(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/im.test(reg_email)))) {
errorMessage ="please enter valid email id" ;
$('#msg_regemail').html(errorMessage).show();
} else {
$('#msg_regemail').html('').hide();
}
}
我有这个代码用于检查空的电子邮件字段和无效的电子邮件格式。但现在我的要求是验证电子邮件地址,如gmail.com,yahoo.com。 如果我输入xyz @ xy.com,它应该显示错误消息,如无效的电子邮件。所以jquery应该只接受像gmail.com等电子邮件ID。 任何人都可以建议上述要求的代码。 提前谢谢
答案 0 :(得分:1)
如果您只是检查简单的电子邮件地址,则可以使用此正则表达式提取域,然后根据预制列表进行检查。你也可以制作一份非法名单,并对其进行检查。
var legalDomains = {
"-yahoo.com": true,
"-gmail.com": true,
"-hotmail.com": true,
"-msn.com": true
};
var matches = reg_email.match(/@(.*)$/);
if (matches) {
// matches[1] is the part after the @ sign in the email address
if (("-" + matches[1]) in legalDomains) {
// found the domain in the permitted list
}
}
注意:在列表中使用前导“ - ”以确保我们永远不会匹配javascript对象上的任何内置方法名称,例如“keys”或“create”,这会给某些单词提供错误的答案。
答案 1 :(得分:1)
Plz试试这个:工作版本: http://jsfiddle.net/Uummr/2/show/ 代码 http://jsfiddle.net/Uummr/2/
所有你需要一个允许的合法域名来源,休息将像魅力一样工作。除了本案例中的法律电子邮件,即var emailLegalReg = /^([\w-\.]+@(?!gmail.com)(?!yahoo.com)(?!hotmail.com)(?!aol.com)([\w-]+\.)+[\w-]{2,4})?$/;
阅读本文:(我已做过相反的事了)http://www.designchemical.com/blog/index.php/jquery/email-validation-using-jquery/
希望这有助于事业:)
<强>码强>
// prepare the form when the DOM is ready
$(document).ready(function() {
$('#btn-submit').click(function() {
$(".error").hide();
var hasError = false;
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
var emailLegalReg = /^([\w-\.]+@(?!gmail.com)(?!yahoo.com)(?!hotmail.com)(?!aol.com)([\w-]+\.)+[\w-]{2,4})?$/;
var emailaddressVal = $("#UserEmail").val();
if(emailaddressVal == '') {
$("#UserEmail").after('<span class="error">Please enter your email address.</span>');
hasError = true;
} else if(!emailReg.test(emailaddressVal)) {
$("#UserEmail").after('<span class="error">Enter a valid email address.</span>');
hasError = true;
} else if(emailLegalReg.test(emailaddressVal)) {
$("#UserEmail").after('<span class="error">No eamil apart from gmail, hotmail or yahoo is allowed.</span>');
hasError = true;
}
if(hasError == true) { return false; }
else {
$("#UserEmail").after('<span class="error">Email accepted.</span>');
return false;
}
});
});
工作形象
答案 2 :(得分:0)
更复杂的一个(不是由我创作,但我用它)
if(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(email)){
validated = true;
}
您是否正在寻找@jfriend建议的特定域名?