用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));
}