• 微信号
  • 微信号
目录

PHP基础

您当前的位置:首页 > 我的笔记 > PHP基础>正则表达式应用案例

正则表达式应用案例

验证电子邮箱

在程序开发中,验证电子邮箱是常遇到的验证方式之一,合法的电子有限尤其相对的固定格式,一般来说包含以下三个部分

  • 用户名:约定邮箱用户名的规则是含有大小字母、数字和下划线
  • 服务器域名:包含小写字母、数字和点(.)
  • @符号:链接用户名和服务器名

如邮箱:admin@qq.com

根据规则,我们可以得出表达式

/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/

案例:通过函数来验证邮箱是否合法

<?php 
 //使用checkEmail()函数输出邮箱格式检验结果 
 function checkEmail($email){ 
 $email_pattern="/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/"; 
 //preg_match()函数用来验证邮箱格式的正确性 
 if(preg_match($email_pattern,$email)==1){ 
 $result=$email."是合法的邮箱格式.<br>"; 
 }elseif(preg_match($email_pattern,$email)==0){ 
 $result=$email."不是合法的邮箱格式.<br>"; 
 } 
 echo $result; 
 } 
 //通过函数来验证四个邮箱的正确性 
 checkEmail("admin123@qq.com"); 
 checkEmail("admin@abc.cn"); 
 checkEmail("admin@com."); 
 checkEmail("123@com.123@com"); 
?>

运行结果

验证手机号码

目前*手机号码需要遵循的规则如下

  • 手机号码由11位组成
  • 手机号码必须以1开头,并且第二位只能是3、5、8、9
  • 手机号码后9位数由0-9之间的十进制数随机组成,没有其他限制

根据规则,表达式为

^[1][3589]\{9}$

案例

<?php 
 //使用checkPhone()函数输出手机号码检验结果 
 function checkPhone($mobile){ 
 $mobile_pattern="/^1[3589]\d{9}$/"; 
 //preg_match()函数用来验证手机号码的正确性 
 if(preg_match($mobile_pattern,$mobile)==1){ 
 $result=$mobile."是合法的手机号码.<br>"; 
 }else if(preg_match($mobile_pattern,$mobile)==0){ 
 $result=$mobile."不是合法的手机号码.<br>"; 
 } 
 echo $result; 
 } 
 //通过函数来验证四个手机号的正确性 
 checkPhone("15285315697"); 
 checkPhone("12085697412"); 
 checkPhone("17088888888888"); 
 checkPhone("15011111111"); 
?> 

运行结果

注意:随着用户的不断增多,手机号码段也在不断增加,案例中的规则不可能*适应

验证QQ号

验证QQ号的规则

  • 以1-9中的数字开头
  • 以第二位开始,后面的数字又1-9任意组合
  • 长度至少5位数,且*长为15位

根据规则表达式为

^[1-9][0-9]{4,14}$

案例

<?php 
 //使用checkQQ()函数输出QQ号码检验结果 
 function checkQQ($qq){ 
 $qq_pattern="/^[1-9][0-9]{4,14}$/"; 
 //preg_match()函数用来验证QQ号码的正确性 
 if(preg_match($qq_pattern,$qq)==1){ 
 $result=$qq."是合法的QQ号码.<br>"; 
 }else if(preg_match($qq_pattern,$qq)==0){ 
 $result=$qq."不是合法的QQ号码.<br>"; 
 } 
 echo $result; 
 } 
 //通过函数来验证四个QQ号的正确性 
 checkQQ("12345678910"); 
 checkQQ("ABCDFGHJJJJ"); 
 checkQQ("1230"); 
 checkQQ("19564785269784563"); 
?> 

运行结果

验证url网址

根据网站url地址总结出以下规则

  • 协议名:通常以http://、https://、ftp://开头
  • 域名部分:以.com、.cn、.net、.org等结尾
  • 网站文件路径:通常指.com等域名后的部分

根据规则写出表达式

^((http|https|ftp)?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$

案例

<?php 
 //使用checkurl()函数输出url网址检验结果 
 function checkurl($url){ 
 $url_pattern="/^((http|https|ftp)?):\/\/[\w\-]+(\.[\w\-]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?$/"; 
 //preg_match()函数用来验证url网址的正确性 
 if(preg_match($url_pattern,$url)==1){ 
 $result=$url."是合法的url网址.<br>"; 
 }else if(preg_match($url_pattern,$url)==0){ 
 $result=$url."不是合法的url网址.<br>"; 
 } 
 echo $result; 
 } 
 //通过函数来验证四个url号的正确性 
 checkurl("https://www.baidu.com"); 
 checkurl("http://baidu.com"); 
 checkurl("abc.acn"); 
 checkurl(".abc"); 
?> 

运行结果

验证身份证号码

一个合法的身份号码主要包含以下是个部分

  • *部分:户口所在地,一个为6位数
  • 第二部分:出生日期,4位年份数,2位月份数,2为日期数,一共8位数
  • 第三部分:数字顺序吗,一共3位数,也就是同一天书生的人数排序,*后1位,奇数代表男性,偶数代表女性
  • 第四部分:身份证校验码,可以是0-9的数字,或者是“X”(X代表数字10)

根据规则得出表达式

^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$

案例

<?php 
 //使用checkid()函数输出身份证号码检验结果 
 function checkid($id){ 
 $id_pattern="/^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/"; 
 //preg_match()函数用来验证身份证号码的正确性 
 if(preg_match($id_pattern,$id)==1){ 
 $result=$id."是合法的身份证号码.<br>"; 
 }else if(preg_match($id_pattern,$id)==0){ 
 $result=$id."不是合法的身份证号码.<br>"; 
 } 
 echo $result; 
 } 
 //通过函数来验证四个id号的正确性 
 checkid("564525185205061231"); 
 checkid("96857419000101452X"); 
 checkid("856974589621324567"); 
 checkid("1234567891011151144"); 
?> 

运行结果