当前位置:文档之家› 很完整的一篇正则表达式总结

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

1、正则表达式-完结篇---工具类开发---?1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1<?php/** 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 16 17 18 19 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/** PHP 正则表达式验证文件*///包含类定义文件require_once'regexTool.class.php';8910111213141516171819202122232425262728293031 $regex=new regexTool();$regex->setFixMode('U'); //设定修正模式为懒惰模式U $r=$regex->isEmail('asdfads@');show($r);//使用之前学过的show函数来进行验证/** Description:PHP 正则表达式函数** @name:show* @description:output debug* @param $var:input data* @return void**/function show($var=null){if(empty($var)){echo'null';}elseif(is_array($var)||is_object($var)){//array,objectecho'<pre>';print_r($var);323334353637383940414243444546474849505152535455 echo'</pre>';}else{//string,int,float...echo$var;}}---验证表单---即使用方法之一html写文件如下<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type"content="text/html; charset="><title>用户注册</title></head><body><form action="regCheck.php"method="post">565758 用户名<INPUT type="text"name="username"id="username" value=""/><br/><br/>email<INPUT type="text"name="email"id="email"value="" /><br/><br/>手机号<INPUT type="text"name="mobile"id="mobile"value=""/><br/><br/><INPUT type="submit"value="注册"/></form></body></html>相对应的在regCheck.php中改?1if(!$regex->noEmpty($_POST['username'])) exit('用户名为空');---仿(山寨版)smarty简易模板引擎-----允许程序猿分前端后端分开开发--模板引擎工作原理:获取模板源文件,编译模板,输出给用户(也就是联系起前后端,做“接口”一样)--模式单元:总模式,即$pattern;子模式,即()中的东西,即一个自定义的原子,也成为模式单元具体应用中,preg_match_all会匹配到两种模式preg_match_all结果为二维数组,其中$matches[0][0]为总模式其他为子模式--2、jQuery---简介---JQuery是继prototype之后又一个优秀的Javascript库。

它是轻量级的js库,它兼容C SS3,还兼容各种浏览器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7/8浏览器。

jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。

jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

相关主题