【JavaScript】正则表达式验证邮箱的注意事项
2017-05-28 23:28
561 查看
第一次正式地使用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]); [code]
总结
第一次使用Markdown正儿八级的写博客+第一次写正则表达式的学习总结,感觉非常不错!感谢您的宝贵时间,祝生活愉快,谢谢~~
——书生
相关文章推荐
- javascript 电话,QQ,手机,身份证号,邮箱地址,邮政 正则表达式验证代码
- 如何在html的javascript中写函数function()并用正则表达式验证身份证号码与邮箱格式是否正确
- JavaScript - JS验证邮箱 身份证 VISA 卡输入是否正确|正则表达式
- javascript:验证邮箱、电话、QQ的正则表达式
- javascript:验证邮箱、电话、QQ的正则表达式
- 正则表达式之邮箱验证javascript代码
- Javascript正则表达式验证邮箱地址
- Javascript正则表达式验证邮箱地址
- JavaScript(正则表达式、表单验证、邮箱验证、函数、HTML DOM)
- JavaScript 邮箱验证的正则表达式写法
- JavaScript之正则表达式验证邮箱,手机号码,身份证,网址,QQ,邮政编码,中文
- 邮箱、帐号、手机号和电话的javascript正则表达式验证方法
- javascript正则表达式验证邮箱
- JavaScript常用验证代码(正则表达式)(转自cnblogs)
- 常用的JavaScript验证正则表达式
- javascript正则表达式验证输入
- 如何使用JavaScript和正则表达式进行数据验证
- net中正则表达式的客户端验证--javascript
- .net中正则表达式的客户端验证--javascript