JS最新手机号码检验正则表达式

本文详细介绍了中国电信、联通及移动的手机号码号段分配情况,包括2G、3G、4G网络对应的号码开头数字,并提供了手机号码验证的正则表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电信 ·

中国电信手机号码开头数字
2G/3G号段(CDMA2000网络)133、153、180、181、189
4G号段 177

联通

中国联通手机号码开头数字
2G号段(GSM网络)130、131、132、155、156
3G上网卡145
3G号段(WCDMA网络)185、186
4G号段 176、185[1]

移动

中国移动手机号码开头数字
2G号段(GSM网络)有134x(0-8)、135、136、137、138、139、150、151、152、158、159、182、183、184。
3G号段(TD-SCDMA网络)有157、187、188
3G上网卡 147
4G号段 178

从以上我们可以看到第一位是【1】开头,第二位则则有【3,4,5,7,8】,第三位则是【0-9】,第三位之后则是数字【0-9】。从而我们可以得出一个符合当前的手机号码验证正则表达式。

var reg = /^1[3|4|5|7|8][0-9]{9}$/; //验证规则

var phoneNum = '15507621999';//手机号码

var flag = reg.test(phoneNum); //true
但你想过没有,也许这个第二位代码可能随时增加一个,比如以16开头呢?19开头呢?谁知道以后的事,咱们的代码要保证几年没问题,所以还可以不验证第二位规则:

var reg = /^1[0-9]{10}$/;


### 校验手机号码正则表达式模式 在中国,手机号码通常由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]。 ### 总结 无论是采用较为简单的全数字检测还是针对国内实际运营情况设计更为严格的条件过滤,上述两种方案都能满足大部分场景下关于合法手机账号的身份确认需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值