手机号码规则的正则表达式

案例描述:使用正则表达式判断一个11位的数字字符串是否是一个手机号码,如果是还要说明是哪个运营商的手机号码。本案例只能证明一个手机号码是否符合真确的规则,无法验证一个手机号码是否真实存在。
有关正则表达式的内容请参考我的另一篇文章: http://hi.baidu.com/snowslince/blog/item/ee4a0bce67b1183eb700c86e.html

import java.io.*;
class MobPhnNumMatch
{
/*描述不同公司手机号码规则的正则表达式
*cmcc-中国移动手机号码规则
*cucc-中国联通手机号码规则
*cnc--中国网通3G手机号码规则*/
static String cmcc="^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[89]{1}))[0-9]{8}$";
static String cucc="^[1]{1}(([3]{1}[0-3]{1})|([5]{1}[3]{1}))[0-9]{8}$";
static String cnc="^[1]{1}[8]{1}[89]{1}[0-9]{8}$";
String mobPhnNum;
public MobPhnNumMatch(String mobPhnNum)
{
this.mobPhnNum=mobPhnNum;
}
public int matchNum()
{
int flag;//存储匹配结果
//判断手机号码是否是11位
if(mobPhnNum.length()==11)
{
   //判断手机号码是否符合中国移动的号码规则
   if(mobPhnNum.matches(cmcc))
   {
    flag=1;
   }
   //判断手机号码是否符合中国联通的号码规则
   else if(mobPhnNum.matches(cucc))
   {
    flag=2;
   }
   //判断手机号码是否符合中国网通的号码规则
   else if(mobPhnNum.matches(cnc))
   {
    flag=3;
   }
   //都不合适
   else{
    flag=4;
   }
}
//不是11位
else {
   flag=5;
}
return flag;
}
//根据返回的匹配结果输出相应的信息
public void match()
{
int flag;
flag=matchNum();
System.out.print(mobPhnNum);
switch(flag){
   case 1:
    System.out.println("使中国移动的手机号码!");
    break;
   case 2:
    System.out.println("使中国联通的手机号码!");
    break;
   case 3:
    System.out.println("使中国网通3G的手机号码!");
    break;
   case 4:
    System.out.println("不是正确的手机号码!");
    break;
   case 5:
    System.out.println("不是11位的手机号码!");
    break;
   default:
}
}
}
//主类
public class RegularMatch{
public static void main(String[] args)
{
   boolean Flag=true;
   while(Flag==true)
   {
    try{
     System.out.print("请输入您要查询的手机号码:");
     BufferedReader pdataIn=new BufferedReader(new InputStreamReader(System.in));
     MobPhnNumMatch MPNM=new MobPhnNumMatch(pdataIn.readLine());
     MPNM.match();
     System.out.println("继续请按Y,退出请按其它键。");
     BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
     char choiceID=(char)br.read();
     if(choiceID!='Y')
     {
      Flag=false;
      return;
     }
     else if(choiceID=='Y'){
      Flag=true;
     }
    }catch(IOException e){
     e.printStackTrace();
    }
   }
}
}

你可能感兴趣的:(规则,正则表达式,职场,休闲,手机号码)