PHP实现的常规正则验证helper公共类完整实例


Posted in PHP onApril 27, 2017

本文实例讲述了PHP实现的常规正则验证helper公共类。分享给大家供大家参考,具体如下:

主要代码功能: 弥补平时项目对于验证功能这块的不严谨。具体细分的常规验证, 手机号/电话/小灵通验证, 字符串长度区间合法验证, 邮箱验证, 使用正则验证数据.

/**
 *
 *
 * 常规验证helper公共类
 *
 *
 */
class CheckForm
{
  //手机号/电话/小灵通 验证
  public function Mobile_check($mobile,$type = array())
  {
    /**
    * 手机号码
    * 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
    * 联通:130,131,132,152,155,156,185,186
    * 电信:133,1349,153,180,189
    */
    $res[1]= preg_match('/^1(3[0-9]|5[0-35-9]|8[0-9])\\d{8}$/', $mobile);
    /**
    * 中国移动:China Mobile
    11   * 134[0-8],135,136,137,138,139,150,151,157,158,159,182,187,188
    */
    $res[2]= preg_match('/^1(34[0-8]|(3[5-9]|5[017-9]|8[0-9])\\d)\\d{7}$/', $mobile);
    /**
    * 中国联通:China Unicom
    * 130,131,132,152,155,156,185,186
    */
    $res[3]= preg_match('/^1(3[0-2]|5[256]|8[56])\\d{8}$/', $mobile);
    /**
    * 中国电信:China Telecom
    * 133,1349,153,180,189
    */
    $res[4]= preg_match('/^1((33|53|8[09])[0-9]|349)\\d{7}$/', $mobile);
    /**
    * 大陆地区固话及小灵通
    * 区号:010,020,021,022,023,024,025,027,028,029
    * 号码:七位或八位
    */
    $res[5]= preg_match('/^0(10|2[0-5789]|\\d{3})-\\d{7,8}$/', $mobile);
    $type = empty($type) ? array(1,2,3,4,5) : $type;
    $ok = false;
    foreach ($type as $key=>$val)
    {
      if ($res[$val])
      {
        $ok = true;
      }
      continue;
    }
    if ( $mobile && $ok )
    {
      return true;
    } else{
      return false;
    }
  }
  //字符串长度区间合法验证
  public function Strlength_check($str, $min=NULL, $max=NULL)
  {
    preg_match_all("/./u", $str, $matches);
    $len = count($matches[0]);
    if(is_null($min) && !empty($max) && $len < $max){
      return false;
    }
    if(is_null($max) && !empty($min) && $len > $min){
      return false;
    }
    if ($len < $min || $len > $max) {
      return false;
    }
    return true;
  }
  //邮箱验证
  public static function isEmail($str)
  {
    if (!$str) {
      return false;
    }
    return preg_match('#[a-z0-9&\-_.]+@[\w\-_]+([\w\-.]+)?\.[\w\-]+#is', $str) ? true : false;
  }
  /**
  * 使用正则验证数据
  * @access public
  * @param string $rule 验证规则
  * @param string $value 要验证的数据
  * @return boolean
  */
  public function regex($rule,$value) {
    $validate = array(
    //字段必须,不能为空
    'require' => '/\S+/',
    //邮箱验证
    'email'  => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
    //url验证
    'url'  => '/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',
    //货币验证
    'currency' => '/^\d+(\.\d{0,2})?$/',
    //数字验证
    'number' => '/^[-\+]?\d+(\.\d+)?$/',
    //zip验证
    'zip'  => '/^\d{6}$/',
    //整数验证
    'integer' => '/^[-\+]?\d+$/',
    //浮点数验证
    'double' => '/^[-\+]?\d+(\.\d+)?$/',
    //英文验证
    'english' => '/^[A-Za-z]+$/',
    'gt0' => '/^(?!(0[0-9]{0,}$))[0-9]{1,}[.]{0,}[0-9]{0,}$/',
    //合法帐号
    'account' => '/^[a-zA-Z][a-zA-Z0-9_]{1,19}$/'
    );
    // 检查是否有内置的正则表达式
    if(isset($validate[strtolower($rule)]))
    $rule = $validate[strtolower($rule)];
    return preg_match($rule,$value)===1;
  }
  function CheckPwd($pwd,$min=NULL, $max=NULL)
  {
  if (strlen($pwd)>$max || strlen($pwd)<$min || preg_match("/^\d*$/",$pwd) || preg_match("/^[a-z]*$/i",$pwd))
  {
    return false;
  }
  return true;
  }
}

is_null() 检测变量是否为 NULL。

PHP 相关文章推荐
拼音码表的生成
Oct 09 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
Oct 22 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php获得url参数中具有&amp;的值的方法
Mar 05 PHP
PHP中单引号与双引号的区别分析
Aug 19 PHP
如何实现php图片等比例缩放
Jul 28 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 PHP
php实现商城购物车的思路和源码分析
Jul 23 PHP
php上传excel表格并获取数据
Apr 27 #PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 #PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 #PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 #PHP
利用PHPExcel实现Excel文件的写入和读取
Apr 26 #PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 #PHP
PHP基于简单递归函数求一个数阶乘的方法示例
Apr 26 #PHP
You might like
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
PHP分页效率终结版(推荐)
2013/07/01 PHP
php实现文件下载代码分享
2014/08/19 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
PHP简单检测网址是否能够正常打开的方法
2016/09/04 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
php微信开发之关注事件
2018/06/14 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
关于Yii中模型场景的一些简单介绍
2019/09/22 PHP
一端时间轮换的广告
2006/06/26 Javascript
js判断字符长度以及中英文数字等
2013/12/31 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
JSONP基础知识详解
2017/03/19 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
node.js之基础加密算法模块crypto详解
2018/09/11 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
商学院大学生求职的自我评价
2014/03/12 职场文书
Python基础之数据结构详解
2021/04/28 Python
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
python turtle绘图
2022/05/04 Python