用java 的正则表达式区分移动、联通、电信的手机号

最近我们公司在做短信接口,其中一个功能就是要实现给移动、联通、电信的号码发送短信。我在网上收到一些资料,加上看书等,已将这个功能实现,现贴出来。

publicstaticintmatchesPhoneNumber(Stringphone_number){

Stringcm="^((13[4-9])|(147)|(15[0-2,7-9])|(18[2-3,7-8]))\\d{8}$";

Stringcu="^((13[0-2])|(145)|(15[5-6])|(186))\\d{8}$";

Stringct="^((133)|(153)|(18[0,9]))\\d{8}$";

intflag=0;

if(phone_number.matches(cm)){

flag=1;

}elseif(phone_number.matches(cu)){

flag=2;

}elseif(phone_number.matches(ct)){

flag=3;

}else{

flag=4;

}

returnflag;

}

publicstaticvoidwhichOperator(intx){

switch(x){

case1:

System.out.println("移动号码");

break;

case2:

System.out.println("联通号码");

break;

case3:

System.out.println("电信号码");

break;

case4:

System.out.println("输入有误");

break;

default:System.out.println("输入有误");

}

}

publicstaticvoidmain(String[]args){

Stringe="14561198278";

whichOperator(matchesPhoneNumber(e));

}

相关推荐