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

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

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

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

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


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


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


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


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


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


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


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

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

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

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


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

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

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

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

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