基于正则验证中国手机号码(2017)

2017-12-22 08:08:47 +08:00
 Septembers

以下正则基于 "中国内地移动终端通讯号码" 使用 regexgen 构建生成

正则验证范围包括 中国移动、中国联通、中国电信(含虚拟运营商号段,不含物联网及卫星号段)

^1(?:70\d|(?:9[89]|8[0-24-9]|7[135-8]|66|5[0-35-9])\d|3(?:4[0-8]|[0-35-9]\d))\d{7}$

本正则构建于 2017/12/22 请注意实效性,请以最新的《电信网编号计划》为准。

see https://zh.wikipedia.org/wiki/中国内地移动终端通讯号码

see http://www.miit.gov.cn/n1146290/n4388791/c5623706/content.html

see https://septs.pw/archives/59


如需生成器请参考如下

https://gist.github.com/septs/8cb9f6298fa59caef39229fb04c36609

5311 次点击
所在节点    正则表达式
43 条回复
lhx2008
2017-12-22 08:13:37 +08:00
好复杂,不过收藏了
ReysC
2017-12-22 08:34:25 +08:00
多谢共享~
---
这个要保存起来,下次做验证用。
xujiang
2017-12-22 08:37:23 +08:00
mark,多谢
jingniao
2017-12-22 08:43:20 +08:00
说实话,我看到过验证 1 开头,然后 10 位数字的的……
rogwan
2017-12-22 08:46:41 +08:00
^1[345789][0-9]{9}$

极简版,欢迎使用
superpeaser
2017-12-22 08:48:35 +08:00
前台验证 1 开头,11 位字符,哈哈哈
@jingniao
gstqc
2017-12-22 08:51:58 +08:00
替换掉空格,减号,然后转成整数类型,比较几次大小不是更好?
Chappako
2017-12-22 08:52:18 +08:00
Chappako
2017-12-22 08:53:40 +08:00
@rogwan 你这不支持 166 段啊
rogwan
2017-12-22 08:56:13 +08:00
@Chappako 不知道出了 166 号段啊,补上:

^1[3456789][0-9]{9}$
zlhsvc
2017-12-22 09:03:06 +08:00
这样验证很久了 ^1(\d){10}$
nameryan
2017-12-22 09:03:33 +08:00
仿佛又回到了过去的 V2EX,这才有点感觉
DrJoseph
2017-12-22 09:08:27 +08:00
这样的帖子不应该被埋没,支持一下
lingo
2017-12-22 09:11:07 +08:00
我也 1d10 验证了很久。。。
用户非要输个错的,乱输个别人的我也验证不了不是。
izzyleung
2017-12-22 09:19:35 +08:00
SourceMan
2017-12-22 09:29:57 +08:00
已收藏
这样的帖子难得
AdamChrist
2017-12-22 09:33:35 +08:00
3q
bxj
2017-12-22 09:34:17 +08:00
死盖伊.....
renyijiu
2017-12-22 09:40:37 +08:00
@jingniao 我就是这么验证的。。。。因为功能中手机号没什么真实作用
wzw
2017-12-22 10:38:03 +08:00
大家来说说 香港 台湾 美国 电话号码 的正则

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/416713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX