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 相关文章推荐
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
在Debian系统下配置LNMP的教程
Jul 09 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
php语法检查的方法总结
Jan 21 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
JavaScript 函数调用规则
2009/09/14 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
VUEJS实战之构建基础并渲染出列表(1)
2016/06/13 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
微信小程序实现漂亮的弹窗效果
2020/05/26 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
Python地图绘制实操详解
2019/03/04 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
自荐信结尾
2013/10/27 职场文书
大专毕业生自我评价分享
2013/11/10 职场文书
班组长的岗位职责
2013/12/09 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
总结会主持词
2015/07/02 职场文书
导游词之昭君岛
2020/01/17 职场文书