V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
omghonor
V2EX  ›  问与答

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

  •  
  •   omghonor · Jan 12, 2018 · 7573 views
    This topic created in 3036 days ago, the information mentioned may be changed or developed.

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

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


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


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


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


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


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


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


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

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

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

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


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

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

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

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

    昨天百度的,2018 年 1 月份最新正则
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1184 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 857ms · UTC 17:44 · PVG 01:44 · LAX 10:44 · JFK 13:44
    ♥ Do have faith in what you're doing.