php常用的正則匹配
匹配手機號碼
function pregPN($test){
/**
匹配手機號碼
規(guī)則:
手機號碼基本格式:
前面三位為:
移動:134-139 147 150-152 157-159 182 187 188
聯(lián)通:130-132 155-156 185 186
電信:133 153 180 189
后面八位為:
0-9位的數(shù)字
*/
$rule = "/^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$/A";
preg_match($rule,$test,$result);
return $result;
}
匹配郵箱
function pregE($test){
/**
匹配郵箱
規(guī)則:
郵箱基本格式是 *****@**.**
@以前是一個 大小寫的字母或者數(shù)字開頭虱咧,緊跟0到多個大小寫字母或者數(shù)字或 . _ - 的字符串
@之后到.之前是 1到多個大小寫字母或者數(shù)字的字符串
.之后是 1到多個 大小寫字母或者數(shù)字或者.的字符串
*/
$zhengze = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';
preg_match($zhengze,$test,$result);
return $result;
}
電話號碼匹配
function pregTP($test){
/**
電話號碼匹配
電話號碼規(guī)則:
區(qū)號:3到5位蔼夜,大部分都是四位姓赤,北京(010)和上海市(021)三位膨疏,西藏有部分五位,可以包裹在括號內(nèi)也可以沒有
如果有區(qū)號由括號包裹肿仑,則在區(qū)號和號碼之間可以有0到1個空格郑兴,如果區(qū)號沒有由括號包裹薪前,則區(qū)號和號碼之間可以有兩位長度的 或者-
號碼:7到8位的數(shù)字
例如:(010) 12345678 或者 (010)12345678 或者 010 12345678 或者 010--12345678
*/
$rule = '/^(((010)|(021)|(0\d{3,4}))( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';
preg_match($rule,$test,$result);
return $result;
}
匹配url
function pregURL($test){
/**
匹配url
url規(guī)則:
例
協(xié)議://域名(www/tieba/baike...).名稱.后綴/文件路徑/文件名
http://zhidao.baidu.com/question/535596723.html
協(xié)議://域名(www/tieba/baike...).名稱.后綴/文件路徑/文件名?參數(shù)
www.lhrb.com.cn/portal.php?mod=view&aid=7412
協(xié)議://域名(www/tieba/baike...).名稱.后綴/文件路徑/文件名/參數(shù)
http://www.xugou.com.cn/yiji/erji/index.php/canshu/11
協(xié)議:可有可無,由大小寫字母組成柴淘;不寫協(xié)議則不應(yīng)存在://迫淹,否則必須存在://
域名:必須存在,由大小寫字母組成
名稱:必須存在为严,字母數(shù)字漢字
后綴:必須存在敛熬,大小寫字母和.組成
文件路徑:可有可無,由大小寫字母和數(shù)字組成
文件名:可有可無第股,由大小寫字母和數(shù)字組成
參數(shù):可有可無应民,存在則必須由?開頭,即存在?開頭就必須有相應(yīng)的參數(shù)信息
*/
$rule = '/^(([a-zA-Z]+)(:\/\/))?([a-zA-Z]+)\.(\w+)\.([\w.]+)(\/([\w]+)\/?)*(\/[a-zA-Z0-9]+\.(\w+))*(\/([\w]+)\/?)*(\?(\w+=?[\w]*))*((&?\w+=?[\w]*))*$/';
preg_match($rule,$test,$result);
return $result;
}
匹配身份證號
function pregIC($test){
/**
匹配身份證號
規(guī)則:
15位純數(shù)字或者18位純數(shù)字或者17位數(shù)字加一位x
*/
$rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';
preg_match($rule,$test,$result);
return $result;
}
匹配郵編
function pregPOS($test){
/**
匹配郵編
規(guī)則:六位數(shù)字炸茧,第一位不能為0
*/
$rule ='/^[1-9]\d{5}$/';
preg_match($rule,$test,$result);
return $result;
}
匹配ip
function pregIP($test){
/**
匹配ip
規(guī)則:
**1.**2.**3.**4
**1可以是一位的 1-9瑞妇,兩位的01-99,三位的001-255
**2和**3可以是一位的0-9梭冠,兩位的00-99,三位的000-255
**4可以是一位的 1-9辕狰,兩位的01-99,三位的001-255
四個參數(shù)必須存在
*/
$rule = '/^((([1-9])|((0[1-9])|([1-9][0-9]))|((00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))))\.)((([0-9]{1,2})|(([0-1][0-9]{2})|(2[0-4][0-9])|(25[0-5])))\.){2}(([1-9])|((0[1-9])|([1-9][0-9]))|(00[1-9])|(0[1-9][0-9])|((1[0-9]{2})|(2[0-4][0-9])|(25[0-5])))$/';
preg_match($rule,$test,$result);
return $result;
}
匹配時間
function pregTI($test){
/**
匹配時間
規(guī)則:
形式可以為:
年-月-日 小時:分鐘:秒
年-月-日 小時:分鐘
年-月-日
年:1或2開頭的四位數(shù)
月:1位1到9的數(shù)控漠;0或1開頭的兩位數(shù)蔓倍,0開頭的時候個位數(shù)是1到9的數(shù),1開頭的時候個位數(shù)是1到2的數(shù)
日:1位1到9的數(shù)盐捷;0或1或2或3開頭的兩位數(shù)偶翅,0開頭的時候個位數(shù)是1到9的數(shù),1或2開頭的時候個位數(shù)是0到9的數(shù)碉渡,3開頭的時候個位數(shù)是0或1
小時:0到9的一位數(shù)聚谁;0或1開頭的兩位數(shù),個位是0到9滞诺;2開頭的兩位數(shù)形导,個位是0-3
分鐘:0到9的一位數(shù);0到5開頭的兩位數(shù)习霹,個位是0到9朵耕;
分鐘:0到9的一位數(shù);0到5開頭的兩位數(shù)淋叶,各位是0到9
*/
$rule ='/^(([1-2][0-9]{3}-)((([1-9])|(0[1-9])|(1[0-2]))-)((([1-9])|(0[1-9])|([1-2][0-9])|(3[0-1]))))( ((([0-9])|(([0-1][0-9])|(2[0-3]))):(([0-9])|([0-5][0-9]))(:(([0-9])|([0-5][0-9])))?))?$/';
preg_match($rule,$test,$result);
return $result;
}
匹配中文
function pregCh($test){
//utf8下匹配中文
$rule ='/([\x{4e00}-\x{9fa5}]){1}/u';
preg_match_all($rule,$test,$result);
return $result;
}