首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求中国电话的正则表达式解决办法

2012-02-02 
求中国电话的正则表达式求中国电话的正则表达式[解决办法]String regexp (\\+?[0-9]{1,4})?[ ]*([0-9]{

求中国电话的正则表达式
求中国电话的正则表达式

[解决办法]
String regexp = "(\\+?[0-9]{1,4})?[ ]*([0-9]{1,}\\-?){1,2}[0-9]+$ ";
[解决办法]
String regex = "(0\\d{2,3}-)?\\d{7,8} ";
System.out.println( "025-12345678 ".matches(regex));
[解决办法]
其实这个问题我还是不懂,但是,我更想问的是,比如,关于若干行业的业务逻辑,是否可以归结出一定量的正则表达式的呢,比如电信行业,教育行业,工资计费,消费积分,超市物流系统之类的。不知道是否有专家能给写出成一定的文件包(PDF,DOC,CHM甚至html都可以),便于下载之类的呢。
期待中
[解决办法]
移动手机的怎么判断?

还有如何把全角数字自动转换成半角的??
[解决办法]
public static void main(String[] args) {
  String num = "0123456789 ";
  System.out.println(replaceNumber(num));
  
  String phone = "13045678944 ";    
  System.out.println(chinaUnicom(phone));
  
  phone = "13845678944 ";
  System.out.println(chinaMobile(phone));
}

// 替换全身数字
public static String replaceNumber(String num) {    
  for(char c = '0 '; c <= '9 '; c++){
    num = num.replace(c+ " ", (c - '0 ') + " ");
  }
  return num;
}

// 移动号段 134~139、158~159
public static boolean chinaMobile(String pn){
  return pn.matches( "((13[4-9])|(15[8-9]))\\d{8} ");
}

// 联通号段 130~133、156
public static boolean chinaUnicom(String pn){
  return pn.matches( "((13[0-3])|(15[6]))\\d{8} ");
}
[解决办法]
\d{3}-\d{8}|\d{4}-\d{7}
[解决办法]
\d[3]-\d[8]|\d[4]-\d[7]|\d[4]-\d[8]
北京010-33333333
荆州0716-8438243
杭州0571-87653465

热点排行