手机号码正则表达式

中国电信手机号码开头数字
2G/3G号段(CDMA2000网络)133、153、180、181、189
4G号段 177
联通

中国联通手机号码开头数字
2G号段(GSM网络)130、131、132、155、156
3G上网卡145
3G号段(WCDMA网络)185、186
4G号段 176、185[1] 
移动

中国移动手机号码开头数字
2G号段(GSM网络)有134x(0-8)、135、136、137、138、139、150、151、152、158、159、182、183、184。
3G号段(TD-SCDMA网络)有157、187、188
3G上网卡 147
4G号段 178
补充

14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。
170号段为虚拟运营商专属号段,170号段的 11 位手机号前四位来区分基础运营商,其中 “1700” 为中国电信的转售号码标识,“1705” 为中国移动,“1709” 为中国联通

 

1 // "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{8}"代表后面是可以是0~9的数字,有8位。    
2 public static final boolean isMobileNO(String mobiles) {
3         Pattern p=Pattern.compile("^((1[358][0-9])|(14[57])|(17[0678]))\\d{8}$");
4         Matcher m=p.matcher(mobiles);
5         return m.matches();
6     }

 

posted @ 2015-11-09 09:23  jitash  阅读(518)  评论(0编辑  收藏  举报