【JavaScript】正则表达式验证邮箱的注意事项

第一次正式地使用MarkDown写博客,全程懵逼状态……

学习正则表达式的时候,李老师讲到了验证邮箱地址的两种书写格式:不使用分组&使用分组。下面分别简单总结下。

未用分组

源码

 
var pattern=/[\w]+.zip|rar|gz/;
var str=’sdflj.zip’;

使用test检测

 
alert(pattern.test(strZip));
alert(pattern.test(strRar));
alert(pattern.test(strGz));

使用为进行分组的RegExp对邮箱地址进行检测的时候,没有发现任何问题:无论是测试zip、rar还是gz均能正确显示结果。

使用exec检测

 
alert(pattern.exec(strZip));
alert(pattern.exec(strRar));
alert(pattern.exec(strGz));

但是在使用exec检测的时候,出现了异常。检测zip时能够正常运行,检测rar和gz时却出现了异常,详情如下:
检测zip
这里写图片描述
检测rar
这里写图片描述
检测gz
这里写图片描述

问题分析

1、未对正则表达式进行严格的首尾限制;
2、没有对用“|”进行选择的文件后缀名进行分组。
以上两点原因导致第一个“|”将它前面的所有字符作为一个整体的候选项进行判断,从而出现使用test检测没有问题,使用exec进行检测却出现问题的现象。

使用分组

源码

 
var pattern=/^([\w])+.(zip|rar|gz)$/;
var strZip=’sdflj354.zip’;
var strRar=’sdflj354.rar’;
var strGz=’sdflj354.gz’;

使用test检测

 
alert(pattern.test(strZip));
alert(pattern.test(strRar));
alert(pattern.test(strGz));

使用test检测,正常输出结果。

使用exec检测

 
alert(pattern.exec(strZip));
alert(pattern.exec(strRar));
alert(pattern.exec(strGz));

对正则表达式进行简单的限制和分组后,使用exec检测可以正常输出结果了。但是在使用exec进行检测的时候,返回的是一个个的数组。我们需要截取第一个作为我们的结果即可。
 
alert(pattern.exec(strZip)[0]);
alert(pattern.exec(strRar)[0]);
alert(pattern.exec(strGz)[0]);

总结

第一次使用Markdown正儿八级的写博客+第一次写正则表达式的学习总结,感觉非常不错!
感谢您的宝贵时间,祝生活愉快,谢谢~~
——书生

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值