V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Gocobnus
V2EX  ›  程序员

家人们,手机号验证到底是正则还是直接 11 位数字首位为 1 啊

  •  
  •   Gocobnus · 266 天前 · 2771 次点击
    这是一个创建于 266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上的正则全是好几年前的了,可用性很难保证 11 位数字验证首位的感觉有些宽泛 大家都用的什么呢

    13 条回复    2024-04-01 16:09:27 +08:00
    shenyuzhi
        1
    shenyuzhi  
       266 天前 via iPhone
    11 位数字完事。不要想太多
    hard2reg
        2
    hard2reg  
       266 天前
    11 ,真要有效选短信验证码,
    w3sun
        3
    w3sun  
       266 天前
    如果精确到 139/136/138 那新的号段怎么办
    cokar
        4
    cokar  
       266 天前 via Android
    首位为 1 ,第二位大于 2 即可
    billccn
        5
    billccn  
       266 天前
    让我突然想到小灵通时代部分地区所有座机号码都是可以收短信的,如果接收号码不是小灵通的话,会有一个自动语音系统给那个号码打个电话,然后把短信读出来。那时候经常给同学家群发骚扰短信。
    opengps
        6
    opengps  
       265 天前 via Android
    宽泛意味着高兼容,那些只有 13 开头的才叫古老
    dyv9
        7
    dyv9  
       265 天前 via Android
    @hard2reg 对,只能这样,格式只验证 11 个数字,要保证有效就只能通过验证码确认。想要支持香港澳门手机就只有验证码这一个方案。
    ThirdFlame
        8
    ThirdFlame  
       265 天前
    1 开头 11 为数字即可。 以后可能会出现 9 开通 11 位数字,稍微改一下即可
    wu67
        9
    wu67  
       265 天前
    讲真, 我好几年前就在用了, 上面的各位网上抄代码麻烦也更新一下好吧
    /^1[3-9]\d{9}$/
    bzj
        10
    bzj  
       265 天前
    连 1 都没必要验证,直接验证长度即可
    MMDeJeVS3GtMVLeu
        11
    MMDeJeVS3GtMVLeu  
       265 天前
    11 位数字即可,越严格越容易出错,咱们保证不了那天出现一个新号段,也无法确认 19999999999 是不是一个合法的手机号

    校验都是烂活,不必太纠结
    kenilalexandra
        12
    kenilalexandra  
       265 天前
    直接 11 位啊,还写什么正则,写错了就收不到验证码自己就去校验了。
    ZeroAsh
        13
    ZeroAsh  
       265 天前
    我的建议是无脑走 libphonenumber 解析,记得把默认地区设置为+86
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 08:24 · PVG 16:24 · LAX 00:24 · JFK 03:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.