很完整的一篇正则表达式总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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';