1 匹配手机:(全网通)
$str = '这是电话13800138000,13800138001'; check_phone($str); function check_phone($ph_str) { /** 匹配手机号码 规则: 手机号码基本格式: 前面三位为: 移动:134-139 147 150-152 157-159 182 187 188 联通:130-132 155-156 185 186 电信:133 153 180 189 后面八位为: 0-9位的数字 */ $rule = "/((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}/"; preg_match_all($rule,$ph_str,$m); print_r($m); }
2 匹配邮箱:
$str ='my@163.com,my.sun@qq.com,my_test@qq.com'; pregE($str); function pregE($str){ /** 匹配邮箱 规则: 邮箱基本格式是 *****@**.** @以前是一个 大小写的字母或者数字开头,紧跟0到多个大小写字母或者数字或 . _ - 的字符串 @之后到.之前是 1到多个大小写字母或者数字的字符串 .之后是 1到多个 大小写字母或者数字或者.的字符串 */ $rule = '/[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+/'; preg_match_all($rule,$str,$m); print_r($m); }
验证邮箱优化版:
$str ='my@163.com,my.sun@qq.com,my_test@qq.com'; pregE($str); function pregE($str){ /** 匹配邮箱 规则: 邮箱基本格式是 *****@**.** @以前是一个 大小写的字母或者数字开头,紧跟0到多个大小写字母或者数字或 . _ - 的字符串 @之后到.之前是 1到多个大小写字母或者数字的字符串 .之后是 1到多个 大小写字母或者数字或者.的字符串 */ $rule = '/[\w\d][\w\d._-]*\@[\w\d-._]+\.[\w\d]{2,10}/i'; preg_match_all($rule,$str,$m); print_r($m); }
3 匹配身份证:
$str = '445221199103296538'; pregIC($str); function pregIC($str){ /** 匹配身份证号 规则: 15位纯数字或者18位纯数字或者17位数字加一位x */ $rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/A'; preg_match($rule,$str,$m); print_r($m); }