很完整的一篇正则表达式总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、正则表达式-完结篇---工具类开发---

?

1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1

/*

* PHP 正则表达式工具类

* 描述:进行正则表达式匹配,有常用的正则表达式以及允许用户自定义正则表达式进行匹配

*/

class regexTool{

//定义常用正则表达式,并用数组对的方式存储

private$validate=array(

'require'=> '/.+/',

'email'=>

'/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',

'url'=>

'/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(?:[\/ \?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?$/',

'currency'=> '/^\d+(\.\d+)?$/',

'number'=> '/^\d+$/',

'zip'=> '/^\d{6}$/',

'integer'=> '/^[-\+]?\d+$/',

'double'=> '/^[-\+]?\d+(\.\d+)?$/',

5 1

6 1

7 1

8 1

9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2'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;

}

//判断返回结果类型,为匹配结果matches还是匹配成功与否isMatch,并调用返回方法

private function regex($pattern,$subject){

if(array_key_exists(strtolower($pattern),

$this->validate))

$pattern=$this->validate[$pattern].$this->fixMode; //判断后再连接上修正模式作为匹配的正则表达式

$this->returnMatchResult ?

7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3preg_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;

}

}

//允许用户自定义切换返回类型

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;

9 4 0 4 1 4 2 4 3 4 4 4 5 4 }

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);

}

public function check($pattern, $subject) { return$this->regex($pattern, $subject);

}

}

实例化进行验证?

1 2 3 4 5 6 7

/*

* PHP 正则表达式验证文件

*/

//包含类定义文件

require_once'regexTool.class.php';

相关文档
最新文档