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)); }
已下载:262 次
原创文章,转载请注明出处:https://www.weizhixi.com/article/1.html