比如,下面的都合法:
021-11111111
02111111111
86-021-11111111
86021-11111111
号码最后面的部分6-8位,可以带上国际区号
还有手机号吗,前面可以带上0
---------------------------------------------------------------
echo(check("021-12345678"));
echo(check("02112345678"));
echo(check("86-021-12345678"));
echo(check("86021-12345678"));
echo(check("0536-1234567"));
echo(check("13812311213"));
echo(check("013812311213"));
function check($str){
if(ereg("^([0-9]{2}-?)?0[0-9]{2}-[0-9]{8}$",$str))return 1;//3位区号
if(ereg("^([0-9]{2}-?)?0[0-9]{10}$",$str))return 2;
if(ereg("^([0-9]{2}-?)?0[0-9]{3}-[0-9]{7}$",$str))return 3;//4位区号
if(ereg("^0?13[0-9]{9}$",$str))return 4;//手机
return 0;
}
---------------------------------------------------------------
$pattern="/^([0-9]{1,6}[-]?)?([0][1-9][0-9]{1,2}[-]?)?[0-9]{6,8}$/";//国际区位号码1-6位
$phone="02111111111";
//$phone="021-11111111";
if(preg_match($pattern,$phone)) echo "电话号码合法!";
else echo "电话号码不合法";
$movePhone="13011111111";
if(preg_match("/^[0]?[1][3][0-9]{9}$/",$movePhone)) echo "手机号码合法!";
else echo "手机号吗不合法!";