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

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

  •  
  •   omghonor · 2018-01-12 12:52:41 +08:00 · 6789 次点击
    这是一个创建于 2538 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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


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


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


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


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


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


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


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

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

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

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


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

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

    但这些都是次要的,我主要的我就是三件事情,很惭愧,就做了一点微小的工作,谢谢大家。
    Morriaty
        7
    Morriaty  
       2018-01-12 13:23:09 +08:00   ❤️ 1
    把锅丢给后端
    qq292382270
        8
    qq292382270  
       2018-01-12 13:26:15 +08:00
    1 开头&&11 位
    yksoft1
        9
    yksoft1  
       2018-01-12 13:37:04 +08:00
    @codermagefox 后端一律不得经商!
    Telegram
        10
    Telegram  
       2018-01-12 13:48:31 +08:00 via iPhone   ❤️ 1
    1\d{10}

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

    昨天百度的,2018 年 1 月份最新正则
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1279 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:41 · PVG 01:41 · LAX 09:41 · JFK 12:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.