前端开发经常用到简洁,高效,合理最大范围字符的Email验证

前端开发经常用遇到Email地址的验证, 网上见到很多, 但有些是验证比较简单的Eamil地址, 当真正实际使用时隐约发现有些合理的Email地址没有被考虑到, 导致有些合理的Email地址在JS验证时不通过, 从而提交不了表单, 于是有必要重新用正则结合JS写一个简洁, 高效, 允许合理最大范围字符的Email地址验证函数, 因为这个功能在平时使用的频率很高, 函数如下:


-----------------------------------------------------------------------------------------------------------------

function isEmail(strEmail){

//功能: 检查Email地址的正确性

//返回值: boolean类型,  true = 合法 email,  false = 错误email

var e=strEmail.replace(/^\s*|\s*$/g,'');
var emailReg=/^[\w-\._]*[\w]@[\w][\.\w-]*[\w]\.[a-z]+$/i;  
var p=e.indexOf('@');
if(emailReg.test(e) && e.indexOf('..')<0 && e.indexOf('@',p+1)<0)
return true;
else
return false;

}

----------------------------------------------------------------------------------------------------------------


TEST/测试:

var e1="a_aa@163.com";             //应该提示合法的Email地址
//var e1="a@163.com.cn";            //应该提示合法的Email地址
//var e1="a_aa@163.com.cn";     //应该提示合法的Email地址
//var e1="a-aa@163.com.g";        //应该提示合法的Email地址
//var e1="a-aa@c7.n";                    //应该提示合法的Email地址
//var e1="a-a_a.a@163.com";      //应该提示合法的Email地址
//var e1="a#aa@.163.com";                     //应该提示非法的Email地址
//var e1="a@asd_aa@.163.com";          //应该提示非法的Email地址
//var e1="aa..asd_aa@.163.com";          //应该提示非法的Email地址
//var e1="aa.a9sd_aa@163..com";         //应该提示非法的Email地址
//var e1="a%a.a9sd_aa@163.com";      //应该提示非法的Email地址
//var e1="a\xa.a9sd_aa@163.com";       //应该提示非法的Email地址
//var e1="aa.asd_aa@163.co!m";           //应该提示非法的Email地址
//var e1="a\ra.a3sd_ata@163.com";      //因 \ 为转义特殊字符,如它和其后的数字或英文字母构成的组合如果符合转义约定,那么在字符串赋值时已经被转义为其它字符了,再到后面的 Eamil 检测,如果符合Eamil地址要求
 

//注意: 有些Email地址在理论上符合Email语法/语意要求, 但实际可能不存在, 如s@dd.x 符合Email语法要求, 但实际不存在


if(isEmail(e1))

alert('合法的Email地址');

else

alert('非法的Email地址');


//感谢网友的参与的讨论,使得更加精简的正则模式...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值