用正则匹配手机号码的时候, 我们先分析一下手机号码的规律:
1. 手机号通常是 11 位的
2. 经常是 1 开头
3. 第二个数字通常是 34578 这几个数字, 2014.5.5 日 170 号段的手机号开卖所以这里多了个 7.
php 用正则表达式判断手机号码的写法:
$g = "/^1[34578]\d{9}$/";
// "^" 符号表示必须是 1 开头; "[]" 的意思是第二个数字必须是中括号中一个数字; 而 \d 则表示 0-9 任意数字, 后跟 {9} 表示长度是 9 个数字; 后面的 $ 表示结尾; 开始和结尾的 / 是正则表达式必须放在这个中间, 有的后面可能还跟模式.
从文章中匹配出所有的手机号就可以这样写了:
$str = ' 老吧博客 作者的手机是 18912345678';
preg_match_all("/^1[34578]\d{9}$/", $str, $mobiles);
//var_dump($mobiles);
如果要检查用户输入的手机号是否正确可这样来检查:
if(preg_match("/^1[34578]\d{9}$/", $mobile)){
// 这里有无限想象
}
来源: http://www.bubuko.com/infodetail-2469623.html