家人们,手机号验证到底是正则还是直接 11 位数字首位为 1 啊

2024-03-30 17:30:07 +08:00
 Gocobnus

网上的正则全是好几年前的了,可用性很难保证 11 位数字验证首位的感觉有些宽泛 大家都用的什么呢

3170 次点击
所在节点    程序员
13 条回复
shenyuzhi
2024-03-30 18:37:43 +08:00
11 位数字完事。不要想太多
hard2reg
2024-03-30 21:23:12 +08:00
11 ,真要有效选短信验证码,
w3sun
2024-03-30 22:57:29 +08:00
如果精确到 139/136/138 那新的号段怎么办
cokar
2024-03-31 00:40:46 +08:00
首位为 1 ,第二位大于 2 即可
billccn
2024-03-31 08:07:26 +08:00
让我突然想到小灵通时代部分地区所有座机号码都是可以收短信的,如果接收号码不是小灵通的话,会有一个自动语音系统给那个号码打个电话,然后把短信读出来。那时候经常给同学家群发骚扰短信。
opengps
2024-03-31 17:14:07 +08:00
宽泛意味着高兼容,那些只有 13 开头的才叫古老
dyv9
2024-04-01 06:56:04 +08:00
@hard2reg 对,只能这样,格式只验证 11 个数字,要保证有效就只能通过验证码确认。想要支持香港澳门手机就只有验证码这一个方案。
ThirdFlame
2024-04-01 08:14:26 +08:00
1 开头 11 为数字即可。 以后可能会出现 9 开通 11 位数字,稍微改一下即可
wu67
2024-04-01 09:23:07 +08:00
讲真, 我好几年前就在用了, 上面的各位网上抄代码麻烦也更新一下好吧
/^1[3-9]\d{9}$/
bzj
2024-04-01 10:17:08 +08:00
连 1 都没必要验证,直接验证长度即可
MMDeJeVS3GtMVLeu
2024-04-01 15:12:43 +08:00
11 位数字即可,越严格越容易出错,咱们保证不了那天出现一个新号段,也无法确认 19999999999 是不是一个合法的手机号

校验都是烂活,不必太纠结
kenilalexandra
2024-04-01 15:37:16 +08:00
直接 11 位啊,还写什么正则,写错了就收不到验证码自己就去校验了。
ZeroAsh
2024-04-01 16:09:27 +08:00
我的建议是无脑走 libphonenumber 解析,记得把默认地区设置为+86

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1028409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX