regexTool 正则表达式工具类



<?php
header("content-type:text/html;charset=utf-8");
class regexTool{
    private $validate = array(
            'require'  =>  '/.+/',
'email'    =>  '/^\w+(\.\w+)*@\w+(\.\w+)+$/' ,
'url'      =>  '^(https?://)?(\w+\.)+[A-Za-z]+$' ,
'currency' =>  '/^\d+(\.\d+)?$/' ,
'number'   =>  '/^\d+$/'  ,
'zip'      =>  '/^\d{6}$/'  ,
'integer'  =>  '/^[-\+]?\d+$/'  ,
'double'   =>  '//^[-\+]?\d+(\.\d+)?$/'  ,
'english'  =>  '/^[A-Za-z]+$/'  ,
'qq'       =>  '/^\d{5,11}$/'  ,
'mobile'   =>  '/^1(3|4|5|7|8)\d{9}$/',
);

private $returnMatchResult = false;
private $fixMode =null;
private $matches =array();
private $isMatch =false;

public function __construct($returnMatchResult =false, $fixMode = null){
   $this ->returnMatchResult =$returnMatchResult;
$this ->fixMode = $fixMode;
}

private function regex($pattern,$subject){
            if(array_key_exists(strtolower($pattern),$this->validate)){
       $pattern = $this->validate[$pattern].$this->fixMode;
}
$this->returnMatchResult ?
    preg_match_all($pattern,$subject,$this->matches) :
$this->isMatch = preg_match($pattern,$subject) === 1;
 return $this->getRegexResult();
}

private function getRegexResult(){
   if($this->returnMatchResult){
      return $this->matches;
}else{
      return $this->isMatch;
}
}

//转换返回类型 从匹配结果-><-验证结果(bool)
public function toggleReturnType($bool =null){
       if(empty($bool)){
   $this ->returnMatchResult = !$this->returnMatchResult;
}else {
   $this->returnMatchResult = is_bool($bool) ? $bool :(bool)$bool;
}
}

//修改修正模式
public function setFixMode($fixMode){
      $this->fixMode = $fixMode;
}

//数据验证方法
//验证是否为空
public function noEmpty($str){
return $this->regex('require',$str);
}
//验证邮箱
public function isEmail($email){
return $this->regex('email',$email);
}

//验证手机号
public function isMobile($mobile){
return $this->regex('mobile',$mobile);
}

//验证QQ
public function isQQ($qq){
return $this->regex('qq',$qq);
}

//若数组上没有的话调用以下
public function check($pattern,$subject){
return $this->regex($pattern,$subject);
}
}
?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值