博客列表 >用正则表达式匹配用户信息

用正则表达式匹配用户信息

梁凯达的博客
梁凯达的博客原创
2018年12月24日 20:39:30734浏览

写一个注册表单需要有帐号,密码,确认密码,邮箱,手机(中国大陆)
//  对帐号,密码,邮箱,手机使用正则表达式进行验证
//  验证规则:帐号 6 ~ 10位,只允许字母,数字,和下划线  其他字符都不允许出现  不能为空
//                  密码 6~ 18 位     不能为空
//                  手机必须为中国大陆手机   不能为空
//                  邮箱必须符合邮箱规则  不能为空
//                  密码与确认密码必须相同
//标准         以上所有验证都通过方可提示注册成功,有一项不通过都注册失败!
 //验证账户6 ~ 10位,只允许字母,数字,和下划线  其他字符都不允许出现  不能为空
 function name(){
  $str = '122122';
  $preg = '/\w{1,9}/';
  $result = preg_match($preg,$str,$arr);
  var_dump($arr);
  if($result&&strlen($str)<=9&&strlen($str)>=6){
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:red">恭喜通过了</b>';
  }else{
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:green">不符合要求</b>';
  }
 }
 name();

 function password(){
  $str = '12345';
  $preg = '/\w{1,9}/';
  $result = preg_match($preg,$str,$arr);
  var_dump($arr);
  if($result&&strlen($str)<=9&&strlen($str)>=6){
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:red">恭喜通过了</b>';
  }else{
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:green">不符合要求</b>';
  }
 }
 password();
 //手机号
 //11位数
 //第一个位数s必须是1开头
 //30-39 47 50-59 70-79 80-89 99 98
 function phone(){
  $str = '13536454104';
  $preg = '/1([3578]\d|47|99|98)\d{8}/';
  $result = preg_match($preg,$str,$arr);
  var_dump($arr);
  if($result&&strlen($str)==11){
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:red">恭喜通过了</b>';
  }else{
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:green">不符合要求</b>';
  }
 }
 phone();
// 邮箱首字符和末尾字符必须为字母或数字,邮箱名可以全是字母或数字,或者是两者的组合;
// 连字符"-"、下划线"_" 和英文句号点".",仅能放在字母或数字中间,且不能连续出现(即其单个符号的左右只能是字母或数字);
// 域名可以带连字符"-", 且可以是多级域名 ,还可以有多个域名后缀;
// 不区分大小写;
// 不限定邮箱字符串的具体长度。
 function email(){
  $str = '12345678@qq.com.cn';
  $preg = '/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/';
  $result = preg_match($preg,$str,$arr);
  var_dump($arr);
  if($result){
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:red">恭喜通过了</b>';
  }else{
   echo '当前注册的账户名为:'.$str.'<br />当前账户名验证规则'.$preg.'<br />';
   echo '验证结果为:<b style="color:green">不符合要求</b>';
  }
 }
 email();

 // 拆解
 ///^获取开头
 //[a-zA-Z0-9_.-]+ 大小写字母0-9允许下划线或.-,条件调用1到多次
 // @[a-zA-Z0-9-]+ 邮箱的@xx 其中xx运行一次或多次
 //(\.[a-zA-Z0-9-]+)* 邮箱的.cn之类的那一部分
 // \.[a-zA-Z0-9]{2,6}$/'; 邮箱的.cn后的二级域名部分

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议