分享

JavaScript RegExp 常用的手机和邮箱正则

 Java帮帮 2020-01-02


在做前端form表单验证的时候,经常,也是必须对input做一下判断,例如邮箱了,手机了,input非空了,input只能输入数字了等等。

本篇文章主要讲解“JavaScript RegExp 常用的手机和邮箱正则”,我在做表单的时候,一般是应用Validform,这个插件是比较好用的,能很好的解决绝大部分的表单验证。

但是,这个表单验证不是万能的,有需要特殊处理的时候,例如,如何正确判断一个input文本框既能输入手机,又能输入邮箱呢?

这种情况的应用场景很多,有时候用户名必须是手机或者邮箱,其他不对,就用到了这个判断。

其实这种正则表达式也是比较简单的,下面我就讲解一下:

邮箱的正则:

^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$

手机的正则

^1[3|4|5|8]\d{9}$

两个正则的结合,只需要“I”就可以了,如下:

(^[\w.\-]+@(?:[a-z0-9]+(?:-[a-z0-9]+)*\.)+[a-z]{2,3}$)|(^1[3|4|5|8]\d{9}$) //邮箱和手机

同样的道理,有时候在填写物流信息的时候,需要留联系方式,联系方式可以是手机或者电话,那么正则同理也很简单,可以如下写:

(^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$)|(^0(10|2[0-5789]|\\d{3})\\d{7,8}$) //手机和电话
/(^1[3|4|5|7|8]\d{9})|((^0\d{2}-*|^0\d{3}-*)\d{7,8}$)/  

若你运用Validform,找到Validform_v5.3.2.js这个文件,找到如下代码:

dataType:{    "*":/[\w\W]+/,    "*6-16":/^[\w\W]{6,16}$/,    "n":/^\d+$/,    "n6-16":/^\d{6,16}$/,    "s":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/,    "s6-18":/^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/,    "p":/^[0-9]{6}$/,    "m":/^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$/,    "e":/^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,    "url":/^(\w+:\/\/)?\w+(\.\w+)+.*$/
},

将上面的正则添加在后面就可以了!

或者你也可以自己判断,方法如下:

var reg = new RegExp("(^13[0-9]{9}$|14[0-9]{9}|15[0-9]{9}$|18[0-9]{9}$)|(^0(10|2[0-5789]|\\d{3})\\d{7,8}$)"); if(!reg.test(phone_mob)){        hiAlert('请输入正确的手机号码', '请注意',function(){        $("#phone_mob").focus();        });               return false;             }

上面代码我运用的是hiAlert插件,您也可以自己直接用alert,提示!

常用正则列举

//正整数
/^[0-9]*[1-9][0-9]*$/;
//负整数
/^-[0-9]*[1-9][0-9]*$/;
//正浮点数
/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
//负浮点数
/^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/;
//浮点数
/^(-?\d+)(\.\d+)?$/;
//email地址
/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
//url地址
/^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/;
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$ //年/月/日(年-月-日、年.月.日) /^(19|20)\d\d[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$/; //匹配中文字符 /[\u4e00-\u9fa5]/; //匹配账号是否合法(字母开头,允许5-10字节,允许字母数字下划线) /^[a-zA-Z][a-zA-Z0-9_]{4,9}$/; //匹配空白行的正则表达式 /\n\s*\r/; //匹配中国邮政编码 /[1-9]\d{5}(?!\d)/; //匹配身份证 /\d{15}|\d{18}/; //匹配国内电话号码 /(\d{3}-|\d{4}-)?(\d{8}|\d{7})?/; //匹配IP地址 /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/; //匹配首尾空白字符的正则表达式 /^\s*|\s*$/; //匹配HTML标记的正则表达式 < (\S*?)[^>]*>.*?|< .*? />; //sql 语句 ^(select|drop|delete|create|update|insert).*$ //提取信息中的网络链接 (h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? //提取信息中的邮件地址 \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //提取信息中的图片链接 (s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)? //提取信息中的 IP 地址 (\d+)\.(\d+)\.(\d+)\.(\d+) //取信息中的中国手机号码 (86)*0*13\d{9} //提取信息中的中国邮政编码 [1-9]{1}(\d+){5} //提取信息中的浮点数(即小数) (-?\d*)\.?\d+ //提取信息中的任何数字 (-?\d*)(\.\d+)? //电话区号 ^0\d{2,3}$ //腾讯 QQ 号 ^[1-9]*[1-9][0-9]*$ //账号(字母开头,允许 5-16 字节,允许字母数字下划线) ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ //中文、英文、数字及下划线 ^[\u4e00-\u9fa5_a-zA-Z0-9]+$

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多