校验电话号码的正则

山东
济南、青岛
(区号 0531
5月21日零时起,济南、青岛固定电话、小灵通号码由7位升至8位。所有固定电话及小灵通用户在原七位号码前加8,114、110、119、120、122以及9和1开头的客服短号码等其他业务的接入码不变。
海南
全省
(区号 0898
统一使用区号“0898”
海口本地网的电话在原电话号码前加“6”
三亚本地网的电话在原电话号码前加“8”
原儋州本地网电话在原电话号码前加“2”
江苏
苏州市
(区号原 05200512
升8位,取消“0520”,统一用区号“0512”
原0512区(苏州市区、吴江)号码前加“6”
原0520区(常熟、张家港、昆山、太仓)号码前加“5”
广东
深圳市
(区号 0755
原7位升8位
首位是2、3、4的号码前加“8”
首位是5、6、7、8的号码前加“2”
佛山市
(区号 0757
顺德区号0765取消,使用统一区号“0757”
禅城、南海、三水、高明,首位前加“8”
顺德,固定电话首位前加“2”
福建
福州市
(区号 0591
原7位升8位
原首位号为3、5、7的用户号码前加“8”
原首位号为2、4、6、8的用户号码前加“2”
泉州市
(区号 0595
原7位升8位
原首位号为2、3、4的号码前加“2”
原首位号为5、6、7、8的号码前加“8”
浙江
杭州市
(区号 0571
首位2、5、6、7、8前加“8”,其余加“6”
宁波市
(区号 0574
首位6、7、8前加“8”,其余加“6”
即余姚在原电话号码前加“6”
温州市
(区号 0577
首位6、8前加“8”,其余加“6”
辽宁
大连市
(区号 0411
内四区及县(市)区 号码由7位升至8位
所有固定电话、小灵通号码前加“8”
黑龙江
哈尔滨市
(区号 0451
所属的市区及十二郊县
原号码首位为3、5、7的前加“5”
原号码首位为2、4、6、8的前加“8”
电话号码的正则表达式(C#语言):
手机:^13/d{9}$
正常固定电话(纯数字,不包括-和括号的):^0/d{10}$
上述城市:^(区号)/d{8}$
其实还有部分城市也是8位电话号码,但是区位码仍是3位,共计11位,归入正常计算,这种情况如上海,广州,北京.
 
public bool isPhone(string str)
  {
   Regex reg1 = new Regex(@"^(0/d{10})$");
   Regex reg2 = new Regex(@"^0[531|898|512|755|757|591|595|571|574|577|411|451]/d{8}$");
   if(!reg1.IsMatch(str) && !reg2.IsMatch(str))
    return false;
   else
    return true;
  }
 
就想到这么多,哪个同仁看到帮我补充补充.城市应该收集全了吧```

你可能感兴趣的:(校验电话号码的正则)