以下正则基于 "中国内地移动终端通讯号码" 使用 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
![]() | 1 lhx2008 2017-12-22 08:13:37 +08:00 via Android 好复杂,不过收藏了 |
2 ReysC 2017-12-22 08:34:25 +08:00 多谢共享~ --- 这个要保存起来,下次做验证用。 |
![]() | 3 xujiang 2017-12-22 08:37:23 +08:00 mark,多谢 |
![]() | 4 jingniao 2017-12-22 08:43:20 +08:00 via Android 说实话,我看到过验证 1 开头,然后 10 位数字的的…… |
![]() | 5 rogwan 2017-12-22 08:46:41 +08:00 via Android ^1[345789][0-9]{9}$ 极简版,欢迎使用 |
![]() | 6 superpeaser 2017-12-22 08:48:35 +08:00 via iPhone 前台验证 1 开头,11 位字符,哈哈哈 @jingniao |
7 0ZXYDDu796nVCFxq 2017-12-22 08:51:58 +08:00 via iPhone 替换掉空格,减号,然后转成整数类型,比较几次大小不是更好? |
![]() | 8 Chappako 2017-12-22 08:52:18 +08:00 ![]() |
![]() | 11 zlhsvc 2017-12-22 09:03:06 +08:00 这样验证很久了 ^1(\d){10}$ |
![]() | 12 nameryan 2017-12-22 09:03:33 +08:00 仿佛又回到了过去的 V2EX,这才有点感觉 |
![]() | 13 DrJoseph 2017-12-22 09:08:27 +08:00 这样的帖子不应该被埋没,支持一下 |
![]() | 14 lingo 2017-12-22 09:11:07 +08:00 我也 1d10 验证了很久。。。 用户非要输个错的,乱输个别人的我也验证不了不是。 |
15 izzyleung 2017-12-22 09:19:35 +08:00 ![]() |
![]() | 16 SourceMan 2017-12-22 09:29:57 +08:00 已收藏 这样的帖子难得 |
![]() | 17 AdamChrist 2017-12-22 09:33:35 +08:00 3q |
18 bxj 2017-12-22 09:34:17 +08:00 死盖伊..... |
![]() | 20 wzw 2017-12-22 10:38:03 +08:00 大家来说说 香港 台湾 美国 电话号码 的正则 |
![]() | 21 34C 2017-12-22 10:46:31 +08:00 前端验证 1 开头 10 数字,后端发短信验证码才是王道…… 如果不需要短信验证码的,怎么验都是白搭,填个 13800138000 就过了 |
![]() |
![]() | 23 mokeyjay 2017-12-22 11:10:15 +08:00 没啥意义 直接 /1\d{10}/够用了,真实性还得靠短信 +1 |
24 freeminder 2017-12-22 11:11:43 +08:00 写这么多,尾巴还是`\d{7}` |
![]() | 27 pofycn 2017-12-22 11:40:26 +08:00 via Android 马一下,说不定以后用的到哈哈 |
![]() | 28 guyskk0x0 2017-12-22 11:42:56 +08:00 via Android 重要的发短信验证码验证,不重要的验证下 1 开头 11 位数字就行了,复杂的正则容易误杀正常手机号 |
![]() | 29 guyskk0x0 2017-12-22 11:46:12 +08:00 via Android 之前遇到过用户反馈注册不了,排查发现是正则的锅,这种有时效性的正则尽量不要用 |
30 quicknight 2017-12-22 11:55:09 +08:00 用正则式验证手机号,除了给维护带来麻烦,几乎没有好处 验证手机号,只能靠短信 |
31 quicknight 2017-12-22 11:56:00 +08:00 @jingniao 这种都比复杂的正则式要靠谱 |
![]() | 33 geelaw 2017-12-22 12:05:29 +08:00 via iPhone 不要用 \d,它不是 [0-9] 的另一种写法 |
![]() | 34 Oo0 2017-12-22 12:08:32 +08:00 短信才靠 |
![]() | 35 Septembers OP |
![]() | 36 geelaw 2017-12-22 12:25:24 +08:00 @Septembers 你的第一个链接不是已经告诉你了么? |
![]() | 37 jason19659 2017-12-22 3:47:50 +08:00 1\d{10} |
![]() | 38 3IOhG7M0knRu5UlC 2017-12-22 13:52:26 +08:00 via Android 我一般只验证是数字就行了,然后靠短信验证码 |
39 q409195961 2017-12-22 14:27:11 +08:00 有谁分享下最新的省市区 JSON 数据呗 ![]() |
![]() | 40 Septembers OP |
![]() | 41 ETiV 2017-12-22 14:56:25 +08:00 via iPhone 前端 1d10 后端遇到 100d8 的就通过微信发验证码给我,可以有测试用的账户 |
![]() | 42 evolify 2017-12-22 16:11:16 +08:00 早来 v2 就好了,刚刚自己琢磨了半天 |
![]() | 43 bk201 2017-12-24 10:10:08 +08:00 via iPhone 这样靠正则验证容易出问题 |