校验电话号码的正则

山东
济南、青岛
(区号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;
  }
 
### 校验手机号码正则表达式模式 在中国,手机号码通常由11位数字组成,并且第一位通常是`1`。以下是几种常见的校验手机号码正则表达式: #### Java 实现 在Java中,可以通过如下方式实现手机号码校验: ```java public static boolean checkMobilePhone(String number) { boolean result = false; try { String regex = "[0-9]{11}$"; java.util.regex.Pattern check = java.util.regex.Pattern.compile(regex); java.util.regex.Matcher matcher = check.matcher(number); result = matcher.matches(); } catch (Exception e) { result = false; } return result; } ``` 此方法通过正则表达式 `[0-9]{11}$` 来验证输入是否为11位纯数字字符串[^1]。 #### JavaScript 实现 在JavaScript中,可以使用更精确的正则表达式来匹配中国的手机号码。例如,在Element UI框架中的表单校验规则可能如下定义: ```javascript phoneNumber: () => [ { required: true, message: '请输入手机号码', trigger: 'blur' }, { pattern: /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/, message: '手机号码格式不对,请重新输入', trigger: 'blur' } ] ``` 这里的正则表达式 `/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/` 更具体地指定了不同运营商前缀的有效范围[^2]。 #### 正则表达式的解释 - `^1`: 表示手机号必须以数字`1`开头。 - `([38][0-9]|...)`: 定义了第二位到第三位之间允许的各种组合,涵盖了主要的移动电话服务商号段。 - `\d{8}`: 后续八位数需全部为数字。 - `$`: 结束标志,确保整个串正好是这十一位字符构成。 这种形式不仅限于特定编程语言环境下的应用实例,它同样适用于其他支持标准正则语法的地方如Python、PHP等[^2]。 ### 总结 无论是采用较为简单的全数字检测还是针对国内实际运营情况设计更为严格的条件过滤,上述两种方案都能满足大部分场景下关于合法手机账号的身份确认需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值