您的位置:首页 > 编程语言 > PHP开发

php正则匹配手机号,区分运营商,区分联通、移动、电信,mysql匹配手机号

2016-08-17 13:04 477 查看
<?
/*
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
*/
$regex_all="/^13[0-9]{1}[0-9]{8}$|15[015689]{1}[0-9]{8}$|189[0-9]{8}$/";//所有的手机号码
$regex = "/^13[0-9]{9}$|15[0|1|2|3|5|6|7|8|9]{1}\d{8}$|18[0|5|6|7|8|9]{1}\d{8}$/";  //所有的手机号
$regex_liantong= "/^13[0-2]{1}[0-9]{8}$|15[2|5|6]{1}[0-9]{8}$|18[56]{1}[0-9]{8}$/";//联通手机号码
if(preg_match($regex_liantong, "15545091570")){
echo "联通手机号<br>";
} else {
echo "非联通手机号<br>";
}
if(preg_match($regex, "15345091570")){
echo "是手机号<br>";
} else {
echo "非手机号码<br>";
}

if(preg_match($regex_all, "15345091570")){
echo "是手机号<br>";
} else {
echo "非手机号码<br>";
}
/*  mysql数据库语句匹配手机号码
select byname from user where !(BYNAME REGEXP "^13[0-2]{1}[0-9]{8}$|15[2|5|6]{1}[0-9]{8}$|18[56]{1}[0-9]{8}$");
update user set NOT_MOBILE_LOGIN='1' where !(BYNAME REGEXP "^13[0-2]{1}[0-9]{8}$|15[2|5|6]{1}[0-9]{8}$|18[56]{1}[0-9]{8}$") and USER_ID!='admin';
update user set NOT_MOBILE_LOGIN='0' where USER_ID='admin';
*/
$str="13249035486";
function is_mobile($str){
return preg_match("/^(((d{3}))|(d{3}-))?13d{9}$/", $str);
}
if(is_mobile($str)){
echo $str."是手机号码<br>";
} else {
echo $str."不是手机号码<br>";
}

?>

<?
function checkMobile($str)
{
$pattern = "/^(13|15)\d{9}$/"; // 或者这样写也是对的  $pattern = "/(13|15)\d{9}/";
if (preg_match($pattern,$str))
{
return true;
}
else
{
return false;
}
}
//调用函数
$str = checkMobile("15800000001");
if($str)
{
echo("符合手机号码标准");
}
else
{
echo("不符合手机号码准");
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: