正則表達(dá)式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯,方便以后我們在開發(fā)中進行表單驗證、字符串查找什么的。
1、匹配手機號碼的正則表達(dá)式
匹配手機號碼規(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ù)字
/**
* @param $mobile string 需要驗證的手機號
* @return string
*/
function pregMobile($mobile)
{
$rule = "/^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$/A";
if (preg_match($rule, $mobile, $result)) {
return $result;
} else {
return "不匹配!";
}
}
2、匹配郵箱的正則表達(dá)式
匹配郵箱規(guī)則:
郵箱基本格式是 *****@**.**@以前是一個 大小寫的字母或者數(shù)字開頭,緊跟0到多個大小寫字母或者數(shù)字或 . _ - 的字符串@之后到.之前是 1到多個大小寫字母或者數(shù)字的字符串.之后是 1到多個 大小寫字母或者數(shù)字或者.的字符串。
/**
* @param $email string 郵箱號
* @return string 結(jié)果
*/
function pregEmail($email)
{
$rule = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';
if (preg_match($rule, $email, $result)) {
return $result;
} else {
return "不匹配!";
}
}
3、匹配電話號碼正則表達(dá)式
電話號碼匹配電話號碼規(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
/**
* @param $telephone string 固話號碼
* @return string
*/
function pregTelephone($telephone)
{
$rule = '/^(\(((010)|(021)|(0\d{3,4}))\)( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';
if (preg_match($rule, $telephone, $result)) {
return $result;
} else {
return "不匹配!";
}
}
4、匹配網(wǎng)址url的正則表達(dá)式
匹配url規(guī)則:
協(xié)議://域名(www/m/wap...).名稱.后綴/文件路徑/文件名
http://www.test.com/test/2017030629/165.html
協(xié)議://域名(www/m/wap...).名稱.后綴/文件路徑/文件名?參數(shù)
http://www.test.com/plus/view.php?aid=165
協(xié)議://域名(www/m/wap...).名稱.后綴/文件路徑/文件名/參數(shù)
http://www.test.com/tags.php?/正則表達(dá)式/1/
協(xié)議:可有可無,由大小寫字母組成;不寫協(xié)議則不應(yīng)存在://,否則必須存在://
域名:必須存在,由大小寫字母組成
名稱:必須存在,字母數(shù)字漢字
后綴:必須存在,大小寫字母和.組成
文件路徑:可有可無,由大小寫字母和數(shù)字組成
文件名:可有可無,由大小寫字母和數(shù)字組成
參數(shù):可有可無,存在則必須由?開頭,即存在?開頭就必須有相應(yīng)的參數(shù)信息
/**
* @param $url string url地址
* @return string 結(jié)果
*/
function pregURL($url)
{
$rule = '/^(([a-zA-Z]+)(:\/\/))?([a-zA-Z]+)\.(\w+)\.([\w.]+)(\/([\w]+)\/?)*(\/[a-zA-Z0-9]+\.(\w+))*(\/([\w]+)\/?)*(\?(\w+=?[\w]*))*((&?\w+=?[\w]*))*$/';
if (preg_match($rule, $url, $result)) {
return $result;
} else {
return "不匹配!";
}
}
5、匹配身份證號的正則表達(dá)式
/**
* @param $idcard string 身份證號碼
* @return string 結(jié)果
*/
function pregIdcard($idcard)
{
$rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';
if (preg_match($rule, $idcard, $result)) {
return $result;
} else {
return "不匹配!";
}
}