利用正则表达式对电话号码、邮箱的验证
2016-10-21 15:42
465 查看
正则表达式是一个神奇的东西,很多人都喜欢使用正则表达式来进行表单的验证,例如电话号码、邮箱、邮编、非空等的验证,当然,一些简单的验证,你可以使用别人封装好的技术来验证,但是需求中又复杂的验证的话,还是正则表达式会更好用,如果你懂得正则表达式的话,这些验证写起来确实很简单呢,如果不是很懂的话,我这里可以先向各位介绍几种简单的正则表达式验证。当然网上也有很多大牛的技术分享,大家可以共同探讨学习下。
还是先给大家举例子说明吧:邮编
大家常见的邮编一般都是由6位阿拉伯数字组成的一串数字,这个验证是比较简单单一的,因为字符串中不牵扯到特殊字符,所以可以直接简单暴力的写成:\d\d\d\d\d\d,但是大家可能会问”\d代表的是什么意思?别人写的正则都很简短的,为什么这么简单的验证你写的这么长的?“
问题一:\d 在正则里匹配的是一位数字。六个数字,自然就是六个\d
问题二:正则表达式也是可以优化的,上面的方法自然是为了方便理解,进一步优化的写法是:\d{6},{6}表示的是左边的字符可以连续出现六次,在这里表示有6个数字占位符,注意,此时输入框里必须是6个数字,这是固定长度的,当然也有限长的:\d{3,6}表示可以有3到6个数字。
固定电话
规则:区号-本地号,区号 本地号,(区号)本地号
表达式:\d{3}-\d{8}|\d{4}-\d{7}
解释:固定电话一般区号都是三位或四位数字,本地号是8位或7位数字,区号与本地号之间的”-“照常写就行了,现在有了不同情况,自然就需要有判断条件了,”|”就是分支条件,通俗一点的就是相当于if else,它左边的是格式一,右边的是格式二,即” 格式一 | 格式二 “。
邮箱
规则:邮箱因一般以@为分隔符划分为两部分,左边一部分没有什么规律,右边的可以看成是两个单词组成,中间有一个点,即xxxx@xxx.xx
表达式一:\w+@\w+.\w+
解释:这是我自己写的一个简单的邮箱验证,” \w “匹配一个字母、数字、下划线、汉字,” \w “+表示匹配至少一个或者更多的连续的\w,” \ “表示字符转义,因为” . “在正则里是元字符,匹配除了换行符以外的任意字符,而邮箱里肯定有”.“,所以这是提示正则转义。有很多人早就看出来,这个表达式有漏洞,比如邮箱的第一个字符不是字母,是”- 、_ . “这类的符号,这个表达式就无法检测出来了,当然还有其他的,在这里就不自爆短处了,各位可以自己测,收获会更多。
在这里再给大家补充一个更加完善的邮箱验证表达式,这个应付正常的验证的应该是没什么大问题了。
表达式二:[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,5}
解释:这个是我在别人的基础上加以完善得来的,能够部分解决表达式一的漏洞,如有哪位大牛有更好的,可以给大家分享一下,大家共同进步。
最后给大家放点代码,供大家参考:
<script type="text/javascript"> //检查固定电话是否符合标准 即000-88888888 或者 0000-7777777 function checkTelPhone() 4000 { var reg = new RegExp(/^\d{3}-\d{8}|\d{4}-\d{7}$/); check("agentTel",reg); } //检测传真,规则同上 function checkFax(){ var reg = new RegExp(/^\d{3}-\d{8}|\d{4}-\d{7}$/); check("faxNum",reg); } //nameId即标签的id属性,reg即正则表达式,如果不符合正则表达式,则清空所填信息 function check(nameId,reg){ var phoneNum = document.getElementById(nameId); if(!reg.test(phoneNum.value)){ $(phoneNum).val(""); } } </script> <form> <li> <label>固定电话:</label> <input maxlength="20" name="contactsTixedTel" type="text" onblur="checkTelPhone()"/> </li> <li> <label>传真:</label> <input maxlength="20" name="contactsFax" type="text" onblur="checkFax()" /> </li> </form>
相关文章推荐
- web开发常用的js验证,利用正则表达式验证邮箱、手机、身份证等输入
- 利用Java正则表达式验证手机号、邮箱等
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- 正则表达式验证邮箱、电话号码
- iOS开发--邮箱,电话号码,身份证正则表达式验证
- 正则表达式,验证身份证,手机号,电话号码,邮箱,邮编,日期,正负数,英文字符串等
- 利用正则表达式验证手机或电话号码
- iOS利用正则表达式验证邮箱格式是否正确
- c#常用正则表达式,验证邮箱,Url,电话号码
- Linux学习-shell利用正则表达式验证邮箱合法性
- c#常用正则表达式,验证邮箱,Url,电话号码等
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- Linux学习-shell利用正则表达式验证邮箱合法性
- iOS 利用正则表达式 验证电话号码
- java利用正则表达式验证邮箱
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- java正则表达式验证邮箱、电话号码示例
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- iOS开发中邮箱,电话号码,身份证,密码,昵称正则表达式验证
- java正则表达式验证邮箱、电话号码示例