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);
}