现在前端简单判断手机号是否只要判断大于 130 亿,小于 200 亿就可以了。

2023-09-25 09:17:57 +08:00
 pdog18

似乎现在除了 10 ,11 ,12 都有号码段了

11779 次点击
所在节点    程序员
90 条回复
ochatokori
2023-09-25 13:35:21 +08:00
直接不验证,谁输错谁负责
mynameislihua
2023-09-25 13:38:27 +08:00
让后端校验
x86
2023-09-25 13:39:46 +08:00
朋友说让短信网关验,返回啥你就返回过去,😄
registerrr
2023-09-25 13:51:27 +08:00
@x86 讲究的就是一个物尽其用
jqtmviyu
2023-09-25 14:04:20 +08:00
@nekoneko #48 出个新号段匹配不上也能算事故吗? 照这么说只要 1 开头+10 位数字 全放行得了. 还限制锤子.
ltkun
2023-09-25 14:11:01 +08:00
我的美国号码 1530xxxxxxx
adoal
2023-09-25 14:11:17 +08:00
你问别人为什么要用字符串类型而不是数值类型,那你为什么要用数值类型呢?

从类型的语义来讲,整数数值有两种含义,一是基数( cardinal number ),表数量多少,二是序数( ordinal number ),表有序实体在某种规则下的次序。手机号码很难直接对应到这两种含义中去。它只不过字符集恰好为十进制数字的字符串罢了。
KisekiRemi
2023-09-25 14:22:08 +08:00
/^1[3456789]\d{9}$/

这个正则够用了/doge
aken29
2023-09-25 14:29:06 +08:00
我是会校验一下基本的,避免无意义的调接口,用的是'^(?:(?:\\+|00)86)?1[1-9]\\d{9}$'
bthulu
2023-09-25 14:38:28 +08:00
吓人, 你们不调公安接口验证手机号是否真实有效的吗?
unco020511
2023-09-25 14:39:11 +08:00
1 开头 11 位数字,足矣,别想着整那么多花里胡哨
warron
2023-09-25 14:41:02 +08:00
@nekoneko 把正则做成配置,读配置判断
HaroldFinchNYC
2023-09-25 14:44:48 +08:00
@bthulu 啥接口?方便分享一下吗
nekoneko
2023-09-25 14:47:48 +08:00
@jqtmviyu #64 如果新用户无法注册都不算事故, 那什么算事故啊.
/^1[3456789]\d{9}$/ 这样就足够了, 跟你后面说的差不多, 没必要限制太多.
hauibojek
2023-09-25 15:05:56 +08:00
前端弄点宽松的限制就好
baobao1270
2023-09-25 15:21:33 +08:00
始终建议使用第三方库来判断手机号是否正确: https://github.com/google/libphonenumber

考虑到电话号码的无处不在以及它们存在了多长时间,程序员继续对它们做出错误的假设令人惊讶。

5. 电话号码不能重复使用?旧电话号码被回收并重新分配给其他人。

7. 每个国家的呼叫代码恰好对应一个国家?美国、加拿大和几个加勒比岛屿共享国家呼叫代码+1 。

16. 所有有效的电话号码都遵循国际电联的规范? ITU-T 规定,电话号码不能超过十五位数字,为国家呼叫代码保留一到三位数字,但在德国分配了比这更长的有效号码。

18. 电话号码只包含数字?在以色列,某些广告数字以*开头。在新西兰,可以通过手机拨打*555 来报告非紧急交通事故。Alpha 字符也可以用于电话号码中,例如 1-800-1-800-Flowers 。

25. 电话号码就是数字?切勿尝试将电话号码存储为 int 或任何其他类型的数字数据类型。你不能对它们进行算术,虽然 007 、07 和 7 是相同的数字,但它们不一定是相同的电话号码——在一些国家,前导 0 是重要的,并构成数字本身的一部分。此外,电话号码可能包含其他可表示的字符或分机号部分,在等待提示音后拨打。提示:使用库来解析和格式化数字,以正确处理每个国家的数据。

26. 政府或电信公司发布的电话号码计划代表了现实?国家编号计划,如国际电联管理的计划,代表了政府或电信的意图。这些可以在现实世界中实际实施编号计划更改之前、期间或之后发布。电话号码范围生效的实际日期可能并不总是符合官方公告。
Frauhling
2023-09-25 17:14:24 +08:00
一旦出现 9 开头手机号你又该怎么处理 233
miniaoes
2023-09-25 17:18:12 +08:00
/^(?:(?:\+|00)86)?1[3-9]\d{9}$/
iSecret
2023-09-25 17:29:59 +08:00
/^1[\d]{10}$/
IsA26hN4DcQDS7Z9
2023-09-25 17:34:59 +08:00
@Frauhling 你这杠出花来了

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

https://yangjunhui.monster/t/976806

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

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

© 2021 V2EX