Septembers

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

  •  5
     
  •   Septembers · Dec 22, 2017 · 6812 views
    This topic created in 3240 days ago, the information mentioned may be changed or developed.

    以下正则基于 "中国内地移动终端通讯号码" 使用 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

    43 replies  •  2017-12-24 10:10:08 +08:00
    lhx2008
    lhx2008
    Dec 22, 2017 via Android
    1
    好复杂,不过收藏了
    ReysC
    ReysC
    Dec 22, 2017
    2
    多谢共享~
    ---
    这个要保存起来,下次做验证用。
    xujiang
    xujiang
    Dec 22, 2017
    3
    mark,多谢
    jingniao
    jingniao
    Dec 22, 2017 via Android
    4
    说实话,我看到过验证 1 开头,然后 10 位数字的的……
    rogwan
    rogwan
    Dec 22, 2017 via Android
    5
    ^1[345789][0-9]{9}$

    极简版,欢迎使用
    superpeaser
    superpeaser
    Dec 22, 2017 via iPhone
    6
    前台验证 1 开头,11 位字符,哈哈哈
    @jingniao
    0ZXYDDu796nVCFxq
    0ZXYDDu796nVCFxq
    Dec 22, 2017 via iPhone
    7
    替换掉空格,减号,然后转成整数类型,比较几次大小不是更好?
    Chappako
    Chappako
    Dec 22, 2017
    9
    @rogwan 你这不支持 166 段啊
    rogwan
    rogwan
    Dec 22, 2017 via Android
    10
    @Chappako 不知道出了 166 号段啊,补上:

    ^1[3456789][0-9]{9}$
    zlhsvc
    zlhsvc
    Dec 22, 2017
    11
    这样验证很久了 ^1(\d){10}$
    nameryan
    nameryan
    Dec 22, 2017
    12
    仿佛又回到了过去的 V2EX,这才有点感觉
    DrJoseph
    DrJoseph
    Dec 22, 2017
    13
    这样的帖子不应该被埋没,支持一下
    lingo
    lingo
    Dec 22, 2017
    14
    我也 1d10 验证了很久。。。
    用户非要输个错的,乱输个别人的我也验证不了不是。
    SourceMan
    SourceMan
    Dec 22, 2017
    16
    已收藏
    这样的帖子难得
    AdamChrist
    AdamChrist
    Dec 22, 2017
    17
    3q
    bxj
    bxj
    Dec 22, 2017
    18
    死盖伊.....
    renyijiu
    renyijiu
    Dec 22, 2017
    19
    @jingniao 我就是这么验证的。。。。因为功能中手机号没什么真实作用
    wzw
    wzw
    Dec 22, 2017
    20
    大家来说说 香港 台湾 美国 电话号码 的正则
    34C
    34C
    Dec 22, 2017
    21
    前端验证 1 开头 10 数字,后端发短信验证码才是王道……
    如果不需要短信验证码的,怎么验都是白搭,填个 13800138000 就过了
    ZxBing0066
    ZxBing0066
    Dec 22, 2017
    22
    没啥意义 直接 /1\d{10}/够用了,真实性还得靠短信
    mokeyjay
    mokeyjay
    Dec 22, 2017
    23
    没啥意义 直接 /1\d{10}/够用了,真实性还得靠短信 +1
    freeminder
    freeminder
    Dec 22, 2017
    24
    写这么多,尾巴还是`\d{7}`
    ven
    ven
    Dec 22, 2017
    25
    @34C 后端也不一定要验证,好一点的短信服务都是按照成功付费的,13800138000 这种一般会返回空号或者不允许发送~
    wzw
    wzw
    Dec 22, 2017 via Android
    26
    @ven 阿里云 好像 不是成功付费
    pofycn
    pofycn
    Dec 22, 2017 via Android
    27
    马一下,说不定以后用的到哈哈
    guyskk0x0
    guyskk0x0
    Dec 22, 2017 via Android
    28
    重要的发短信验证码验证,不重要的验证下 1 开头 11 位数字就行了,复杂的正则容易误杀正常手机号
    guyskk0x0
    guyskk0x0
    Dec 22, 2017 via Android
    29
    之前遇到过用户反馈注册不了,排查发现是正则的锅,这种有时效性的正则尽量不要用
    quicknight
    quicknight
    Dec 22, 2017
    30
    用正则式验证手机号,除了给维护带来麻烦,几乎没有好处
    验证手机号,只能靠短信
    quicknight
    quicknight
    Dec 22, 2017
    31
    @jingniao 这种都比复杂的正则式要靠谱
    oh
    oh
    Dec 22, 2017 via iPhone
    32
    @ven 所以更可以验证有效性啊
    geelaw
    geelaw
    Dec 22, 2017 via iPhone
    33
    不要用 \d,它不是 [0-9] 的另一种写法
    Oo0
    Oo0
    Dec 22, 2017
    34
    短信才靠譜
    geelaw
    geelaw
    Dec 22, 2017
    36
    @Septembers 你的第一个链接不是已经告诉你了么?
    jason19659
    jason19659
    Dec 22, 2017
    37
    1\d{10}
    3IOhG7M0knRu5UlC
    3IOhG7M0knRu5UlC
    Dec 22, 2017 via Android
    38
    我一般只验证是数字就行了,然后靠短信验证码
    q409195961
    q409195961
    Dec 22, 2017
    39
    有谁分享下最新的省市区 JSON 数据呗
    ETiV
    ETiV
    Dec 22, 2017 via iPhone
    41
    前端 1d10
    后端遇到 100d8 的就通过微信发验证码给我,可以有测试用的账户
    evolify
    evolify
    Dec 22, 2017
    42
    早来 v2 就好了,刚刚自己琢磨了半天
    bk201
    bk201
    Dec 24, 2017 via iPhone
    43
    这样靠正则验证容易出问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1525 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 23:06 · PVG 07:06 · LAX 15:06 · JFK 18:06
    ♥ Do have faith in what you're doing.