JavaScript邮箱验证正则表达式实战与解析

作者:代码拾荒

时间:2026-10-29

浏览:209

本文整理并解析了JavaScript中常用的邮箱验证正则表达式。通过对比不同版本的正则规则,重点讨论了中划线域名、二级域名以及.com.cn后缀的支持情况。提供了完整的JS验证函数及HTML表单交互代码,旨在帮助开发者实现准确且用户友好的邮箱格式校验。

文章目录

邮箱验证背景与正则基础

背景:正则表达式是一门深奥的技术,想要熟练掌握并非易事。但在日常开发中,我们最常遇到的验证场景无非是电话、邮箱和手机号等。虽然网上有很多现成的正则模板,但要真正写出准确且健壮的验证规则,仍需具备一定的正则知识,并通过大量的测试来确保其可靠性:-)

下面展示邮箱正则的具体实现:

关于中划线域名,这通常被称为“扁担域名”。由于输入较为繁琐且外观不够正规,这类域名的商业价值较低,目前关注此类域名的投资者较少。根据DNS标准,域名中是不允许包含下划线的。

关于下划线,部分用户在注册用户名时喜欢使用下划线_。这种命名方式在登录邮箱时会造成不便,同时也给发送邮件的人带来困扰。

目前,二级域名邮箱的使用已基本被规范。上述正则表达式允许包含下划线,虽然扩大了匹配范围,但主要作用是起到提示用户的效果,问题不大。

针对.com.cn域名的支持,正则部分需包含:((\.[a-zA-Z0-9-]{2,3}){1,2} com.cn

正则表达式演进与代码实现

—————————————————————————————————————————————————————————————— //emailpreg = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/; //这个对QQ号的邮箱验证不了。 emailpreg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; //dfdfd1212@dfdfd.abc.cn 都成二级邮箱。abc@12df1.com.cn emailpreg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9-])+((\.[a-zA-Z0-9-]{2,3}){1,2})$/; //域名是不允许有下划线的 ,去掉下划线,这个就是最后的正则。至于还有啥首字母不能是下划线,要这样,这正则就还得加长...用户也不是sb,只是起到一定提示作用,别搞复杂了,到此为止吧。 <dd><input id="2" rel="邮箱" res='2' type="text" class="item-edit-txt" name="2" value="<{$user.email}>" ></dd> }else if($(this).attr('res') == '2' && !emailpreg.test($(this).val())){//从QQ登录过来的用户大网接口获取不到邮箱,放开让其填写。 $(this).css("border","1px solid #f00"); $("#"+$(this).attr('res')+'span').remove(); $("#"+$(this).attr('res')).after("<span id="+$(this).attr('res')+'span'+"><br />"+$(this).attr("rel")+"格式不正确</span>"); $(this).focus(); res = false; return false;

——————————————————————————————————————————————————————————————

JavaScript表单验证email,判断一个输入量是否为邮箱email,通过正则表达式实现。


//检查email邮箱
function isEmail(str){
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
return reg.test(str);
}

以上内容是小编给大家日常收集JS邮箱验证正则表达式,希望大家喜欢。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章