V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

针对不断出现的新号段(199/198/166),大家前端都是怎么处理?

  •  
  •   omghonor · 4 天前 · 2554 次点击

    rt 是每次都重写一次正则? 还是交给后端判断? 还是有什么好的处理方式?

    42 回复  |  直到 2018-01-13 11:38:51 +08:00
        1
    male110   4 天前
    不处理
        2
    kslr   4 天前
    只要是数字就行,反正还有短信
        3
    learnshare   4 天前
    等用户逼急了来反馈?
        4
    yexm0   4 天前 via iPhone
    以后开放携号转网后会更烦
        5
    kikyous   4 天前 via Android
    1 开头,11 位
        6
    codermagefox   4 天前   ♥ 9
    没处理过,不过唆点个人看法.


    人呐就都不知道,自己就不可以预料。一个前端的工作啊,当然要靠自我奋斗,但是也要考虑到公司的需求。


    我绝对不知道,我作为前端怎么就要负责处理具体的电话校验了.


    所以技术经理跟我讲话,说“技术都决定啦,要前端来写电话号码校验”,我说让后端写吧。


    我实在我也不是谦虚,我一个前端怎么就要写正则检查电话号码了呢?


    但是呢,技术经理讲“大家已经研究决定了”.


    所以后来我就念了两首诗.


    那么所以我开始写了。其实校验的话也没有什么别的,大概三个校验:

    一个,添加了虚拟号码的号码段.

    第二个,把新出现的号码段加入了校验库.

    第三个,就是我们知道的前后端都要验证.


    如果说还有一点什么成绩,就是把校验的 input 封装成了组件!

    这个对项目的效率有很大的关系,写成组件以后大家就不用再考虑写校验了,也不用再上 V2 提这种问题了.

    但这些都是次要的,我主要的我就是三件事情,很惭愧,就做了一点微小的工作,谢谢大家。
        7
    Morriaty   4 天前   ♥ 1
    把锅丢给后端
        8
    qq292382270   4 天前
    1 开头&&11 位
        9
    yksoft1   4 天前
    @codermagefox 后端一律不得经商!
        10
    Telegram   4 天前 via iPhone   ♥ 1
    1\d{10}

    1 开头,11 位,管你怎么来
        11
    smileawei   4 天前
    @codermagefox 已经撅腚了你这样讲会不会有一种硬点的感觉
        12
    gen900   4 天前 via iPhone
    11 位 1 开头的各位,怎么处理+8613xxxxx 这样的输入?
        13
    des   4 天前 via Android
    11 位的各位,没考虑座机?
        14
    mydns   4 天前
    1 开头 11 位 客户只要认为自己填写的号码能收到短信验证码就行
    输入框只能输 11 位 +86 暂未考虑
        15
    crab   4 天前
    @gen900 允许国外号码的才有 86 这种吧。86 单独一个输入框
        16
    gen900   4 天前 via iPhone
    @crab 86 是中国的区号,国内打国内可以加可以不加。+或者 00 也是可选项。
        17
    gstqc   4 天前
    138-0013-8000
    138 0013 8000
    (138) 0013 8000
    0138 0013 8000
    +86 13800138000
    1-877-320-MSFT (6738)
        18
    yingfengi   4 天前 via Android
    不让用
        19
    jiangzhuo   4 天前
    这些不是新出现的号段,是很早前就用于移动通信的网号
    如果你们前端不认得话,叫以前写这段代码的同学来修 bug 呗
        20
    crab   4 天前
    @gen900 知道 86 国内啊,所以不支持国外号码的就默认不需要 86。
        21
    Sypher   4 天前
    简单点, /1\d{10}/
        22
    geelaw   4 天前
    一个最简单的解决方案是 /^1[0-9]{10}$/ 然后真的尝试发短信去判断是否有这个号码
        23
    Felldeadbird   4 天前
    手机号码前端只是验证 长度是否符合就好了。剩余的交给后端的短信接口去验证是否成功。
        24
    zjqzxc   4 天前
    “用所填写的手机号给一个指定号码发送一条指定内容的短信”
        25
    zhouxuchen   4 天前
    已经放弃验证了,11 位 1 开头的数字就算验证通过了
        26
    lululau   4 天前
    为什么要校验手机号。。。
        27
    banricho   4 天前
    把锅丢给后端 + 1
        28
    liprais   4 天前 via iPhone
    @jiangzhuo 中国是去年才批的,用户太多,号码不够用了
        29
    crysislinux   4 天前
    没必要严格验证的,位数差不多就行了,大概率不会出问题,反正别人要搞你的的话乱填个号你还不是没办法
        30
    jiangzhuo   4 天前
    @liprais #28 楼主在工信部公布《电信网编号计划( 2017 年版)》的时候就该改的 BUG 留到了今年
        31
    robinlovemaggie   4 天前
    废掉短信验证,改用 2FA,一劳永逸。
        32
    flashback313   4 天前
    数字就行了撒
        33
    rswl   4 天前
    不管
        34
    notreami   4 天前
    现在都是,用户自己发短信来验证。省钱,还保证肯定是真的手机号码。。然后,遇到这种的,我都会吐槽。
        35
    dami   4 天前
    到时候我们会表态的。
        36
    MonoLogueChi   3 天前 via Android
    新号段不给用,反正大厂都不给验证,我们小厂一并拒绝算了
        37
    tyrealgray   3 天前 via Android
    谷歌有库可以直接用
        38
    konakona   3 天前
    不处理,11 位就 1 开头,数字,ok。
    如果有区号,就把区号分割成另一个字段一同 post 到后端。
        39
    Valyrian   3 天前
    国外手机呢?
        40
    leekafai   3 天前 via Android
    一开头第二位非零共十一位,这个正则在我司代码里躺了 5 年
        41
    hugee   3 天前 via Android
    用不着处理了,除了 13,186 开头的一律不买。
        42
    tmxklzp   3 天前
    /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])[0-9]{8}$/

    昨天百度的,2018 年 1 月份最新正则
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1002 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 60ms · UTC 17:20 · PVG 01:20 · LAX 09:20 · JFK 12:20
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1