正则表达式常用实例

1、手机号码(国内)

var reg = /^1{1}[3-9]{1}[\d]{9}$/;

** 目前国内三大运营商发放的手机号码多是以13、14、15、16、17、18、19开头,而手机号码的第3位(0-9均可)。可参考找号网百度百科-手机号码资料(2018-03)

2、固定电话(国内)

var reg = /^0[1-9][\d]{1,2}\-\d{7,8}$/

** 国内区号参考:百度百科-电话区号(2018-03)。

3、手机号或电话号码(国内)

var reg = /^1{1}[3-9]{1}[\d]{9}|0[1-9][\d]{1,2}\-\d{7,8}$/

** 手机号码和固定座机验证二合一。例如:150100861110 010-10086110

3、QQ账号(腾讯)

var reg = /^[1-9][0-9]{4,}$/

** QQ号码是以10000为起始值的,目前已经发放到以3开头的号码,但QQ号码除了一些靓号以外,本身的价值会越来越低。

4、邮箱账号

var reg = /^[\w!#$%&’*+/=?^_`{|}~-]+(?:\.[\w!#$%&’*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?$/

** 邮箱账号格式:user@mail.server.name。user表示收件人的账号名称,可以是包含字母、数字、符号在内的不限位数的字符串,mail.server.name表示电子邮箱服务器的地址,可以是域名或者十进制的IP地址。详情参考:百度百科-电子邮件地址

5、用户名或昵称

    (1)用户名规则1(必须包含英文字母,可以使用任意的特殊非空白字符,长度在4-20位之间)

var reg = /^(?=.*[a-zA-Z])\S{4,20}$/

   (2)用户名规则2(可以包含英文字母汉字任意的特殊非空白字符、或者它们三者的组合,长度在2-20位之间)

var reg = /^[a-zA-Z\\u4e00-\\u9fa5_\S]{2,20}$/

6、密码

    (1)密码规则1(可以由8-20位的数字,或英文字母,或下划线组成)

var reg = /^\w{8,20}$/

    (2)密码规则3(必须包含数字英文字母组合,不可以使用除下划线以外的任何特殊符号,长度为8-20位)

var reg = /^(?=.*\d)(?=.*[a-zA-Z])\w{8,20}$/

   (3)密码规则4(必须包含数字英文字母组合,可以使用任意的特殊非空白字符,长度为8-20位)

var reg = /^(?=.*\d)(?=.*[a-zA-Z])\S{8,20}$/

   (4)密码规则5(必须包含数字小写英文字母大写英文字母,可以使用任意的特殊非空白字符,长度为8-20位)

var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\S{8,20}$/

   (6)密码规则5(必须包含数字小写英文字母大写英文字母特殊符号,长度为8-20位)

var reg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[~!@#\$%\^&\*\(\)\-+_=`\{\}\{\}:;”‘\|\\,\.\?/><·~!¥%()【】;:“”‘’、《》,。?])\S{8,20}$/

7、URL链接

var reg = /^[a-zA-Z]+://((((0{1}|1{1}[0-9]{0,2}|2{1}[0-5]{0,2}){1}\.{1}){3}(0{1}|1{1}[0-9]{0,2}|2{1}[0-5]{0,2}){1}(:{1}\d{1,})?)|(\w+.{1}){3,})(/{1}.{1,})*$/

** URL格式:协议://服务器名称或IP地址/路径或文件名?查询字符串。可以识别诸如:http://192.168.0.10:8800/column?pagenum=1、https://www.baidu.com/#/column_01?pagenum=1&pagesize=10、ftp://192.168.0.10/index.html,而类似http://192.168.0.259.325绝对不会让通过的。参考链接:百度百科-URL

8、IPv4地址

var reg = /^((0|1[0-9]{0,2}|2[0-5]{0,2})\.){3}(0|1[0-9]{0,2}|2[0-5]{0,2})$/

** IP地址,例如:0.0.0.0、1.1.1.1、127.0.0.0,、192.168.0.1、255.255.255等等。参考链接:百度百科-IPv4

9、IPv6地址

(1)冒分十六进制表示法

var reg = /^([\dA-F]{1,4}:){7}([\dA-F]{1,4})$/

** 这种格式易读,但不易书写。例如:0:0:0:0:0:0:0:0、ABCD:1526:4856:12359:A985:9087:DF45:1的等等。

(2)0位压缩表示法(<span style=”color:red;”>尚未写出可以匹配的正则表达式</span>)

** 这种格式易书写,但不易读。例如:

0:0:0:0:0:0:0:0 => ::

0:0:1:1:1:1:1:1 => ::1:1:1:1:1:1

10、日期

(1)日期验证方式1:

var reg1 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/

var reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/

** 诸如yyyy-mm-dd、yyyy-mm-d、yyyy-m-dd、yyyy-m-d、yyyy/mm/dd、yyyy/mm-d、yyyy/m/dd、yyyy/m/d、yyyy.mm.dd、yyyy.mm.d、yyyy.m.dd、yyyy.m.d格式可以被匹配。但是如2018-12-50这类错误也会被匹配。

(2)日期验证方式2:

var reg3 = /^([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))$/

** 日期格式支持较为单一,仅支持yyyy-mm-dd这种格式。相比方式1,类似2018-05-40这一类错误将不再被匹配,类似2017-5-1也不再被匹配。另外有bug:无论平年还是闰年都将匹配不到02-29。

(3)日期验证方式3:

var reg = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/

** 支持yyyy-mm-dd格式,考虑平闰年,完全能正确匹配。

11、中文

var reg = /^[\u4e00-\u9fa5]{0,}$/

** 验证中文字符串。

12、身份证(18位)

var reg = /^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X|x)$/

参考网站:菜鸟教程-正则表达式在线测试

                  开源社区-正则表达式在线测试工具

    原文作者:长城_changcheng
    原文地址: https://www.jianshu.com/p/f8349442c97e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞