正規表示式是對字串運算的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。今天這篇部落格文章就是對一些常用的PHP正規表示式做了一個整理,方便以後我們在開發中進行表單驗證、字串查找什麼的。
1、匹配手機號碼的正則表達式
匹配手機號碼規則:
手機號碼基本格式:
前面三位為:
移動:134-139 147 150-152 157-159 182 187 188
聯通:130-132 155-156 185 186
電信:133 153 180 189
後面八位為:0-9位的數字
/** * @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、匹配郵箱的正字條表達式
/** * @param $email string 邮箱号 * @return string 结果 */ 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 "不匹配!"; } }
2.格式是 *****@**.**@以前是一個大小寫的字母或數字開頭,緊跟0到多個大小寫字母或數字或. _ - 的字串@之後到.之前是1到多個大小寫字母或數字的字串.之後是1到多個大小寫字母或數字或.的字串。
/** * @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 "不匹配!"; } }
3、匹配電話號碼正規表示式
電話號碼匹配電話號碼規則:區號:3到5位,大部分都是四位,北京(010)和上海市(021)三位,西藏有部分五位,可以包裹在括號內也可以沒有如果有區號由括號包裹,則在區號和號碼之間可以有0到1個空格,如果區號沒有由括號包裹,則區號和號碼之間可以有兩位長度的或-
號碼:7到8位的數字例如:(010) 12345678 或(010)12345678010 12345678 或010--12345678
reee
協定://網域(www/m/wap...).名稱.字尾/檔案路徑/檔案名稱
..../2017030629/165.html協定://網域(www/m/wap...) .名稱.後綴/檔案路徑/檔案名稱?參數
.../view.php?aid=165
.../tags.php?/正则表达式/1/
名稱:必須存在,字母數字漢字
後綴:必須存在,大小寫字母和.組成
文件名:可有可無,由大小寫字母和數字組成
參數:可有可無,存在則必須由?開頭,即存在?開頭就必須有相應的參數資訊
/** * @param $url string url地址 * @return string 结果 */ 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 "不匹配!"; } }
15位純數字或者18位純數字數字或17位數字加上一位x/**
* @param $idcard string 身份证号码
* @return string 结果
*/
function pregIdcard($idcard)
{
$rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';
if (preg_match($rule, $idcard, $result)) {
return $result;
} else {
return "不匹配!";
}
}
六位數字,第一位不能為0/**
* @param $pos string 邮编号码
* @return string 结果
*/
function pregPOS($pos)
{
$rule = '/^[1-9]\d{5}$/';
if (preg_match($rule, $pos, $result)) {
return $result;
} else {
return "不匹配!";
}
}
**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四個參數必須存在。 /**
* @param $ip string ip地址
* @return string 结果
*/
function pregIP($ip)
{
$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])))$/';
if (preg_match($rule, $ip, $result)) {
return $result;
} else {
return "不匹配!";
}
}
形式可以為:年-月-日小時:分鐘:秒,年-月-日小時:分鐘,年-月-日:年:1或2開頭的四位數,月:1位1到9的數;0或1開頭的兩位數,0開頭的時候個位數是1到9的數,1開頭的時候個位數是1到2的數日:1位1到9的數;0或1或2或3開頭的兩位數,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。 /**
* @param $time string 时间
* @return string 结果
*/
function pregTime($time)
{
$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])))?))?$/';
if (preg_match($rule, $time, $result)) {
return $result;
} else {
return "不匹配!";
}
}
/** * @param $chinese string utf8格式中文字 * @return string 结果 */ function pregChinese($chinese) { $rule = '/([\x{4e00}-\x{9fa5}]){1}/u'; if (preg_match($rule, $chinese, $result)) { return $result; } else { return "不匹配!"; } }相關文章:
PHP最常用的正規表示式的詳解
php正規替換變數指定字元的方法PHP正規表示式匹配替換與分割功能實例淺析🎜以上是PHP開發技巧(十二)-常用PHP正規表示式的實例程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!