使用 jquery 验证电子邮件地址 [重复]

Posted

技术标签:

【中文标题】使用 jquery 验证电子邮件地址 [重复]【英文标题】:Email address validation with jquery [duplicate] 【发布时间】:2018-05-30 22:10:17 【问题描述】:

我正在做一个电子邮件注册表作为培训练习,我想用 jquery 检查地址是否正确。

到目前为止,我已经能够编写以下代码:

var validateEmail = function(email)
  if(email.includes(' '))return false;
  if(!email.includes('@'))return false;
  return true;

此代码完美运行,但不幸的是,当没有地址的最后一部分时,表单会被验证,也就是说:“.com”“.fr”等..如果有人可以提供的话,这是全新的开发请给我一首曲目:)

提前谢谢你!

【问题讨论】:

***.com/a/44990869/1920003 只检查@ 是您能做的最好的事情。您可以拥有一个没有 tld 的有效电子邮件地址(例如 localhost),并且您可以在 IP 地址上拥有一个有效地址。例如,接受的答案不接受所有可能的 TLD。甚至没有考虑新的***域名,甚至一些旧的***域名,如 .museum。无论如何,你也无法真正阻止任何人写假地址。 更多信息@***.com/questions/46155/…(阅读全部:-)) 【参考方案1】:

你可以使用普通的javascript

function isEmail(email) 
    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]2,4)+$/;
    return regex.test(email);

【讨论】:

Mohsen,您应该将 var 正则表达式更改为 = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+ \.)+([a-zA-Z0-9]2,6)+$/;支持较新的 TLD,例如 .museum 等。【参考方案2】:

emailValidate() 函数将接受一个参数 (sEmail) 并使用正则表达式来验证电子邮件地址。 从此代码中获取帮助:

function emailValidate(sEmail) 
    var filter = /^([\w-\.]+)@((\[[0-9]1,3\.[0-9]1,3\.[0-9]1,3\.)|(([\w-]+\.)+))([a-zA-Z]2,4|[0-9]1,3)(\]?)$/;
    if (filter.test(sEmail)) 
        return true;
    
    else 
        return false;
    
​

现在,你只需要使用按钮点击事件来调用这个函数。

【讨论】:

【参考方案3】:

您的验证检查电子邮件有点简单。 当然,没有最后一部分它也可以工作,因为您只检查@ 符号。

相反,您可以使用正则表达式进行更一般的检查:

var re = /^(([^<>()\[\]\\.,;:\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,))$/;
var isAnEmail = re.test(email.toLowerCase());

【讨论】:

【参考方案4】:

您可以使用正则表达式轻松做到这一点。

var validateEmail = function(email)

var regexForEmailValidation = /^\w+([-+.'][^\s]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;

var emailFormat = regexForEmailValidation.test($(email).val());// this returns result in boolean type

// do whatever you wish to do here
  

【讨论】:

以上是关于使用 jquery 验证电子邮件地址 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

jquery验证文本输入数组仅验证第一个字段[重复]

使用jquery的电子邮件验证标签输入(使用标签不是正常输入)[重复]

电子邮件验证jQuery [重复]

jQuery 表单验证,仅允许 .EDU 电子邮件地址

验证电子邮件地址时出现 jQuery 错误

jQuery 表单验证插件:要求电子邮件为 .EDU 地址