PHP常用正则表达式判断和验证函数
在这里我把经常要用的正则表达式整理一下,封装成php函数,分享给大家,同时也方便自己,省的在网上搜索许久未果。如有不合理之处,请多多指教。
<?php
/**
* 常用正则表达式判断和验证函数
* User: cxq
* Date: 2017-11-20
* Time: 21:35
*/
/**
* 是否是字母
* @param $value
* @return bool
*/
function is_alpha($value){
$pattern = '/^[A-Za-z]+$/';
return preg_match($pattern, $value) ? true : false;
}
/**
* 是否是字母和数字
* @param $value
* @return bool
*/
function is_alpha_num($value){
$pattern = '/^[A-Za-z0-9]+$/';
return preg_match($pattern, $value) ? true : false;
}
/**
* 是否是字母、数字和下划线_
* @param $value
* @return bool
*/
function is_alpha_num_under($value){
$pattern = '/^[A-Za-z0-9\_]+$/';
return preg_match($pattern, $value) ? true : false;
}
/**
* 是否是字母、数字和汉字
* @param $value
* @return bool
*/
function is_alpha_num_chs($value){
$pattern = '/^[a-zA-Z0-9\x{4e00}-\x{9fa5}]+$/u';
return preg_match($pattern, $value) ? true : false;
}
/**
* 是否是字母、数字、汉字和下划线_
* @param $value
* @return bool
*/
function is_alpha_num_chs_under($value){
$pattern = '/^[a-zA-Z0-9\_\-\x{4e00}-\x{9fa5}]+$/u';
return preg_match($pattern, $value) ? true : false;
}
/**
* 是否是手机号码
* @param $mobile
* @return bool
*/
function is_mobile($mobile){
$pattern = '/^1[34578]\d{9}$/';
return preg_match($pattern, $mobile) ? true : false;
}
/**
* 是否是邮箱地址
* @param $email
* @return bool
*/
function is_email($email){
//if PHP < 5.2.0
//$pattern = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
//return preg_match($pattern, $email) ? true : false;
//if PHP >= 5.2.0
return filter_var($email, FILTER_VALIDATE_EMAIL) ? true : false;
}
/**
* 是否是URL地址
* @param $url
* @return bool
*/
function is_url($url){
//if PHP < 5.2.0
//$pattern = "/((https?|ftp|news):\/\/)?([a-z]([a-z0-9\-]*[\.。])+(aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel|[a-z]{3})|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))(\/[a-z0-9_\-\.~]+)*(\/([a-z0-9_\-\.]*)(\?[a-z0-9+_\-\.%=&]*)?)?(#[a-z][a-z0-9_]*)?/usi";
//return preg_match($pattern, $url) ? true : false;
//if PHP >= 5.2.0
return filter_var($url, FILTER_VALIDATE_URL) ? true : false;
}
/**
* 是否是IP地址
* @param $ip
* @return bool
*/
function is_ip($ip){
//if PHP < 5.2.0
//$pattern = "/^(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])$/";
//return preg_match($pattern, $ip) ? true : false;
//if PHP >= 5.2.0
return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6) ? true : false;
}
/**
* 是否是日期格式Y-m-d
* @param $date
* @return bool
*/
function is_date($date){
$pattern = '/^[\d]{4}-[\d]{2}-[\d]{2}$/';
return preg_match($pattern, $date) ? true : false;
}
/**
* 是否是时间格式Y-m-d h:i:s
* @param $time
* @return bool
*/
function is_datetime($time){
$pattern = '/^[\d]{4}-[\d]{2}-[\d]{2}\s[\d]{2}:[\d]{2}:[\d]{2}$/';
return preg_match($pattern, $time) ? true : false;
}
/**
* 是否是身份证号码15位和18位(含带X)
* @param string $identity
* @return boolean
*/
function is_identity($identity) {
$pattern = '/(^\d{15}$)|(^\d{17}([0-9]|X)$)/';
return preg_match($pattern, $identity) ? true : false;
}
/**
* 是否是国内固定电话号码(区号-座机号码-分机号码|区号-座机号码)
* @param string $phone
* @return boolean
*/
function is_phone($phone) {
$pattern = '/(^(\d{3,4})-(\d{7,8})-(\d{1,4})$)|(^(\d{3,4})-(\d{7,8})$)/';
return preg_match($pattern, $phone) ? true : false;
}
/**
* 是否是邮政编码
* @param $code
* @return bool
*/
function is_postcode($code){
$pattern = '/^[1-9][0-9]{5}$/';
return preg_match($pattern, $code) ? true : false;
}
/**
* 正则验证用户名是否合法
* 只允许数字、字母和下划线_(6-20位)
* @param string $username
* @return bool
*/
function check_username($username){
$pattern = '/^[_0-9a-z]{6,20}$/i';
return preg_match($pattern, $username) ? true : false;
}
/**
* 正则验证密码强度(小于6位,强度为1)
* 密码字符包括:小写字母、大写字母、数字、符号等
* @param string $pass 密码
* @return number 可能为:无0、弱1、中2、3强、4很强
*/
function check_security($pass){
$pattern = '/^(?:([a-z])|([A-Z])|([0-9])|(.)){6,}|(.)+$/';
$replacement = '$1$2$3$4$5';
return strlen(preg_replace($pattern, $replacement, $pass));
}已下载:309 次
原创文章,转载请注明出处:https://www.weizhixi.com/article/1.html
