2678777127 发表于 2018-2-11 11:54:59


            本文实例讲述了PHP实现的常规正则验证helper公共类。分享给大家供大家参考,具体如下:
主要代码功能: 弥补平时项目对于验证功能这块的不严谨。具体细分的常规验证, 手机号/电话/小灵通验证, 字符串长度区间合法验证, 邮箱验证, 使用正则验证数据.
/**
*
*
* 常规验证helper公共类
*
*
*/
class CheckForm
{
//手机号/电话/小灵通 验证
public function Mobile_check($mobile,$type = array())
{
    /**
    * 手机号码
    * 移动:134,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= preg_match('/^1(3|5|8)\\d{8}$/', $mobile);
    /**
    * 中国移动:China Mobile
    11   * 134,135,136,137,138,139,150,151,157,158,159,182,187,188
    */
    $res= preg_match('/^1(34|(3|5|8)\\d)\\d{7}$/', $mobile);
    /**
    * 中国联通:China Unicom
    * 130,131,132,152,155,156,185,186
    */
    $res= preg_match('/^1(3|5|8)\\d{8}$/', $mobile);
    /**
    * 中国电信:China Telecom
    * 133,1349,153,180,189
    */
    $res= preg_match('/^1((33|53|8)|349)\\d{7}$/', $mobile);
    /**
    * 大陆地区固话及小灵通
    * 区号:010,020,021,022,023,024,025,027,028,029
    * 号码:七位或八位
    */
    $res= preg_match('/^0(10|2|\\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);
    if(is_null($min) && !empty($max) && $len$min){
      return false;
    }
    if ($len$max) {
      return false;
    }
    return true;
}
//邮箱验证
public static function isEmail($str)
{
    if (!$str) {
      return false;
    }
    return preg_match('#+@[\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?):\/\/(?:+\.)+{2,4}(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',
    //货币验证
    'currency' => '/^\d+(\.\d{0,2})?$/',
    //数字验证
    'number' => '/^[-\+]?\d+(\.\d+)?$/',
    //zip验证
    'zip'=> '/^\d{6}$/',
    //整数验证
    'integer' => '/^[-\+]?\d+$/',
    //浮点数验证
    'double' => '/^[-\+]?\d+(\.\d+)?$/',
    //英文验证
    'english' => '/^+$/',
    'gt0' => '/^(?!(0{0,}$)){1,}[.]{0,}{0,}$/',
    //合法帐号
    'account' => '/^{1,19}$/'
    );
    // 检查是否有内置的正则表达式
    if(isset($validate))
    $rule = $validate;
    return preg_match($rule,$value)===1;
}
function CheckPwd($pwd,$min=NULL, $max=NULL)
{
if (strlen($pwd)>$max || strlen($pwd)
页: [1]
查看完整版本: PHP实现的常规正则验证helper公共类完整实例