刚用php写了一个云片网发送短信的接口,大陆号码不需要加区号,但是港澳台及国际号码得加区号才能发送。第一次接触香港号码好紧张,在正则验证的时候一直验证有误,百度了很久找不到想要的答案,于是自己写了一串,发现还挺好用。记录一下
if(preg_match('#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#', $mobile)){
echo "大陸";
}else if (preg_match('#^(\+852)[69]\d{7}$#', $mobile)) {
echo "香港";
}
这是按照我的业务逻辑写的, 我只用了香港的手机号码,其他地区或国家的号码 把852换成对应的区号就行了。