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

238 天前
 Gocobnus

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

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

校验都是烂活,不必太纠结
kenilalexandra
236 天前
直接 11 位啊,还写什么正则,写错了就收不到验证码自己就去校验了。
ZeroAsh
236 天前
我的建议是无脑走 libphonenumber 解析,记得把默认地区设置为+86

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

https://www.v2ex.com/t/1028409

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

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

© 2021 V2EX