1 Zerek 2022-07-01 01:40:28 +08:00 via Android 10000000000 < phone < 20000000000 就这样 |
![]() | 4 ttgo 2022-07-01 07:16:28 +08:00 好的,我查查网上有没有人更新了正则表达式。 |
![]() | 5 zhouwb 2022-07-01 07:40:20 +08:00 正在考虑要选个什么号呢,192168 后面写什么呢? |
![]() | 6 elfive 2022-07-01 07:48:32 +08:00 via iPhone 出来这么多年的 191 号段还有好多政务机关和个别另外服务没有适配,192 估计只会更长。 |
![]() | 9 estk 2022-07-01 08:24:18 +08:00 via Android 我的适配规则是,1 开头的 11 位号码都当做手机号 |
10 hervey0424 2022-07-01 08:24:36 +08:00 @FrankHB replace("+86","") |
11 jslang 2022-07-01 08:30:50 +08:00 /^1[3-9]\d{9}$/ |
12 lcy630409 2022-07-01 08:51:46 +08:00 不管,直接提交给 api ,接口说有问题 就有问题,没问题就没问题 |
![]() | 14 abigeater 2022-07-01 09:15:47 +08:00 从有 19 开头的手机号后就把正则改成#11 楼一样了 |
![]() | 15 liuzhaowei55 2022-07-01 09:19:53 +08:00 via iPhone 等短信通道支持了,然后有用户投诉的时候再支持。 |
![]() | 16 anguiao 2022-07-01 09:25:26 +08:00 ![]() 1 开头、11 位数字,其他我都不校验。号段隔一段时间出一个,做那么严格的校验,意义在哪? |
![]() | 17 qwerthhusn 2022-07-01 09:27:07 +08:00 1[3-9]\\d{9} |
![]() | 18 imydou 2022-07-01 09:29:23 +08:00 我微信几年前就绑定了 19298887870 添加好友能搜到 |
![]() | 19 xiangyuecn 2022-07-01 09:41:00 +08:00 ![]() |
22 lcy630409 2022-07-01 10:13:41 +08:00 @cpstar 是这个意思,你不管怎么支持,你的上游短信接口如果不支持 鸟用没有,还不用直接丢给上游接口,他说咋地就咋地 |
![]() | 23 weixiangzhe 2022-07-01 10:14:22 +08:00 |
24 deplivesb 2022-07-01 10:17:11 +08:00 我腾讯王卡 的 166 号段,现在还有地方提示手机号不合法呢 |
![]() | 25 vZexc0m 2022-07-01 11:03:49 +08:00 ^(?:13|14|15|16|17|18|19)[0-9]{9}$ |
![]() | 26 IvanLi127 2022-07-01 11:09:47 +08:00 ![]() |
![]() | 27 pengtdyd 2022-07-01 13:37:44 +08:00 手机号直接不验证,varchar(200),不光考虑到号段变更的问题,还有每个国家都不同,长度也不一样,格式也不同,用的哪个通信运营商就直接丢过去完事。 |
![]() | 28 tyrone2333 2022-07-01 13:43:24 +08:00 /^1\d{10}$/ 专治一切花里胡哨 |
29 hs444 2022-07-01 14:12:39 +08:00 真要确认手机号有效性就用短信验证码,纯用正就能校验就是自己给自己找麻烦 |
![]() | 30 issakchill 2022-07-01 14:22:12 +08:00 public final static Pattern MOBILE = Pattern.compile("(?:0|86|\\+86)?1[3-9]\\d{9}"); |
![]() | 31 AoEiuV020CN 2022-07-01 16:17:27 +08:00 ![]() |
![]() | 32 ysc3839 2022-07-01 16:23:50 +08:00 via Android @AoEiuV020CN 国际手机号,只需要判断第一个字符是加号,后续都是数字就可以了吧?国内的话全都是数字即可。 |
![]() | 33 yaoyaomoe 2022-07-01 16:44:18 +08:00 @ysc3839 还需要考虑境外手机号前面 0 的问题。部分国家的手机号也有类似区号的 0 Alipay 对于选择韩国后输入 1092811234 和 01092811234 就认成了两个账户…… P.S. 那天看到一个正则 133 号段都被当成了非手机号……………… 14 、16 、17 、19 直接没有考虑 |
![]() | 35 ysc3839 2022-07-01 17:06:09 +08:00 via Android @yaoyao1128 看楼上那个代码,不需要考虑这种情况吧?我觉得与其直接不检查,不如检查一下是不是全都是数字,或者开头是加号、后面全是数字。 |
36 brust 2022-07-01 17:06:23 +08:00 return phone.lenght == 11 |
![]() | 37 whitehack 2022-07-01 17:19:42 +08:00 ![]() |
![]() | 38 realpg PRO 130 0000 0000 ~ 199 9999 9999 我在出 186 那年开始就这么写了 |
![]() | 39 sometime 2022-07-01 17:46:59 +08:00 调用手机号码归属地查询,能查到的就是手机号 |
![]() | 40 AoEiuV020CN 2022-07-01 17:55:21 +08:00 @ysc3839 #32 我这里的业务场景是不带区号的手机号,非要判断其实是能做到的,只是因为这个方法总出 bug ,就干脆不判断了, 至于你说的加号,是不是忘了国内也可以+86 的? |
![]() | 41 ysc3839 2022-07-01 18:11:37 +08:00 @AoEiuV020CN 按你的需求,是国际手机号和国内手机号其中之一就满足,那带上 +86 的话也落到了“国际手机号”里面,不影响结果。我说的是你截图的这种需求,检查一下全都是数字,或者开头是加号、后面全是数字,会比不检查更好,别的需求当然是另当别论了。 |
![]() | 44 AoEiuV020CN 2022-07-01 18:31:47 +08:00 @ysc3839 #41 你没明白我的意思,需求明确甚至最好能给出单元测试的话检查手机号不算麻烦, 问题就是需求不明确,功能在变化,一开始并没有外国手机号的要求,一开始限制号码段也没有 bug , 我说没有区号也只是现在这样,写代码的人考虑不了未来的事, 种种原因导致这段正则反复改反复有问题,最后才直接 return true 了, 反正最终发短信失败那就是号码不对, |
![]() | 47 realpg PRO |
![]() | 48 realpg PRO 一直想搞几个手机号: 17216255255 19216819911 前面的有路由,归属地重庆 后面的还没定归属地路由 |
![]() | 50 nanjoyoshino 2022-07-02 09:17:54 +08:00 要是不能一直更新规则还不如干脆别做匹配,我的联通 166 号段的卡都用了多少年了,还有一些软件说是非法号码 |
![]() | 51 zabio 2022-07-02 12:25:07 +08:00 昨天到手 192 号卡打不了电话,上不了网,信号极其不稳定 |