您的位置:首页 > 其它

常用正则匹配

2014-12-30 18:17 148 查看
function pregPN($test){
/**
匹配手机号码
规则:
手机号码基本格式:
前面三位为:
移动:134-139 147 150-152 157-159 182-184 187 188 178
联通:130-132 155-156 185 186 176(4G) 145
电信:133 153 180 189 181 177
后面八位为:
0-9位的数字
*/

$rule  = "/^(13[0-9]|14[57]|15[0-35-9]|17[6-8]|18[0-9])[0-9]{8}$/A";preg_match($rule,$test,$result);
return $result;
}

function pregE($test){
/**
匹配邮箱
规则:
邮箱基本格式是  *****@**.**
@以前是一个 大小写的字母或者数字开头,紧跟0到多个大小写字母或者数字或 . _ - 的字符串
@之后到.之前是 1到多个大小写字母或者数字的字符串
.之后是 1到多个 大小写字母或者数字或者.的字符串
*/
$zhengze = '/^[a-zA-Z0-9][a-zA-Z0-9._-]*\@[a-zA-Z0-9]+\.[a-zA-Z0-9\.]+$/A';
preg_match($zhengze,$test,$result);
return $result;
}

function pregTP($test){
/**
电话号码匹配
电话号码规则:
区号:3到5位,大部分都是四位,北京(010)和上海市(021)三位,西藏有部分五位,可以包裹在括号内也可以没有
如果有区号由括号包裹,则在区号和号码之间可以有0到1个空格,如果区号没有由括号包裹,则区号和号码之间可以有两位长度的 或者-
号码:7到8位的数字
例如:(010) 12345678  或者 (010)12345678 或者 010  12345678 或者 010--12345678
*/
$rule = '/^(\(((010)|(021)|(0\d{3,4}))\)( ?)([0-9]{7,8}))|((010|021|0\d{3,4}))([- ]{1,2})([0-9]{7,8})$/A';
preg_match($rule,$test,$result);
return $result;
}


function pregIC($test){
/**
匹配身份证号
规则:
15位纯数字或者18位纯数字或者17位数字加一位x
*/
$rule = '/^(([0-9]{15})|([0-9]{18})|([0-9]{17}x))$/';
preg_match($rule,$test,$result);
return $result;
}

function pregCh($test){
//utf8下匹配中文
$rule ='/([\x{4e00}-\x{9fa5}]){1}/u';
preg_match_all($rule,$test,$result);
return $result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: