日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 一个简单正则表达式,PHP中正则表达式回顾(3)--编写一个简单的正则表达式工具类...

發(fā)布時間:2025/3/15 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 一个简单正则表达式,PHP中正则表达式回顾(3)--编写一个简单的正则表达式工具类... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

跟著視頻的講解,也親手敲了這么一個正則表達式的類,感覺很不錯,真是溫故而知新,本來想把注釋寫的逼格高一點的,今天晚了有點累,先簡單的寫一下,有時間了再完善完善。

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+)?$/',

'english'???=>??'/^[A-Za-z]+$/',

'qq'=>'/^\d{5,11}$/',

'mobile'=>'/^1(3|4|5|7|8)\d{9}$/',

);

/*******************

*定義返回的結果,是定義是否匹配還是要得到匹配的結果

*當為false的時候驗證結果,是true?or?false??即是否匹配到

*****************/

private?$returnMatchResult=false;

//定義修正模式,默認為空

private?$fixMode=null;

//匹配的結果數組

//驗證匹配的結果,如果成功是true?否則?是false

private?$isMatch=false;

//用于存放匹配到的數據

private?$matches?=?array();

//構造函數?兩個參數?定義返回結果類型,和修正模式

public?function?__construct($returnMatchResult=false,$fixMode=null){

$this->returnMatchResult=$returnMatchResult;//賦值給成員屬性

$this->fixMode=$fixMode;

}

/********************************

*核心匹配方法第一個參數正則表達式,第二個是目標數據

*$pattern?如果在成員屬性$validate中,就直接使用現成的表達式,不存在就當他自己是表達式

**************************/

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

}

//根據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;

}

//下面可以定義一些常用的驗證方法

//非空驗證方法

public?function?noEmpty($str){

return?$this->regex('require',$str);

}

//驗證email

public?function?isEmail($str){

return?$this->regex('email',$str);

}

//驗證手機號

public?function?isMobile($str){

return?$this->regex('mobile',$str);

}

//用戶自定義正則表達式

public?function?check($pattern,$subject){

return?$this->regex($pattern,$subject);

}

}

//實際操作一下,效果還是棒棒噠^_^

$regex?=?new?regexTool();

$regex?->?setFixMode('U');

$isEmail=$regex?->?isEmail('adfasda@qq.com');

$isMobile=$regex?->?isMobile('56481513');

var_dump($isEmail);

echo?'


';

var_dump($isMobile);

經過測試了,應該沒有問題。

總結

以上是生活随笔為你收集整理的php 一个简单正则表达式,PHP中正则表达式回顾(3)--编写一个简单的正则表达式工具类...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。