电话号码的正则
电话号码由数字和“-”组成
如果包含区号,那么区号为三位或四位,首位是0
区号用“-”和其他数字分割
除了区号,电话号码为7到8位
手机号码为11位
11位手机号码的前2位为“13”,“14”,“15”,“17”,“18”
分析
电话号码分为固话和手机号,首先匹配固话,然后匹配手机号。
固话的正则:regex=0\d{2,3}-\d{7,8}
手机号的正则:regex=1[34578]\d{9}
所以电话号码的正则:
regex=(0\d{2,3}-\d{7,8})|(1[34578]\d{9})
电话号码匹配结果如下:
身份证号码的正则
长度:15位或者18位
如果是15位,则都是数字
如果是18位,最后一位可能为数字或字母X
分析
15位数字:regex=\d{15}
18位数字:regex=\d{18}
17位数字+X:regex=\d{17}X|x
所以省份证号码的正则:
regex=(^\d{15}$)|(^\d{18}$)|(^\d{17}X|x$)
身份证号码匹配的结果如下:
电子邮箱的正则
邮箱格式:用户名@网址.域名
用户名:字母、数字、下划线组成
网址:字母、数字
域名:2-4位字母组成,1-2个域名
不区分大小写
分析
用户名:regex=\w+。
网址:regex=[a-zA-Z0-9]+。
所以电子邮箱的正则 regex=\w+@[a-zA-Z0-9]+(.[a-zA-Z]{2,4}){1,2}。
电子邮箱匹配的结果如下:
IP地址的正则
IP地址的格式:(1~255).(0~255).(0~255).(0~255)
分析
1-255的正则 regex=^([1-9]|[1-9]\d|1\d\d|2[0-5][0-5])。
0-255的正则 regex=^(\d|[1-9]\d|1\d\d|2[0-5][0-5]) 。
所以 IP 地址的正则 regex=^([1-9]|[1-9]\d|1\d\d|2[0-5][0-5]).((\d|[1-9]\d|1\d\d|2[0-5][0-5]).){2}(\d|[1-9]\d|1\d\d|2[0-5][0-5])$
IP地址匹配的结果如下:
日期格式的正则
日期格式:yyyy-mm-dd
分析
4位的年,第一位只能是1或2,regex=^([12]\d{3})
一年的12个月(01~09和1~12),regex=^(0?[1-9]|1[0-2])
一个月的31天(01~09和1~31), regex=^((0?[1-9])|((1|2)[0-9])|30|31)
所以 格式为 yyyy-mm-dd 的日期正则 regex=^([12]\d{3})-(0?[1-9]|1[0-2])-(0?[1-9]|((1|2)[0-9])|30|31)$
yyyy-mm-dd 的日期匹配的结果如下: