首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同长度电话号码的正则表达式

不同长度电话号码的正则表达式
EN

Stack Overflow用户
提问于 2013-04-01 01:54:40
回答 1查看 849关注 0票数 0

我在Google上搜索电话号码regex验证,但没有能够根据我的要求使它工作。

基本上,我对前缀有三套不同的规则:

  • 对于10位数字,我需要确保前3是从2-9开始的数字。
  • 对于11位数字,我需要确保前4是从1-9开始的数字。
  • 对于大于12位的数字,我需要确保前7是从0到9的数字。

在此之后,我可以允许类似于1888 letters之类的字母(这将属于第二个条件)。

到目前为止,这就是我所拥有的,但我不确定我是否涵盖了所有的内容:

代码语言:javascript
复制
var reg10 = /^[2-9]{3}[a-z0-9]+$/i;
var reg11 = /^[1-9]{4}[a-z0-9]+$/i;
var reg12plus = /^[0-9]{7}[a-z0-9]+$/i;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-01 02:04:58

这可以由一个regex来处理(包括您的长度检查,正如其他人所建议的)。也许可以做得比这更简洁,但我觉得在您的3种具体的单独前缀要求中,这是更易读的:

^(?:[2-9]{3}[a-z0-9]{7})$|^(?:[1-9]{4}[a-z0-9]{7})$|^(?:[0-9]{7}[a-z0-9]{5,})$

基本上通过“交替”|将三个单独的案例组合在一起。

这可以稍微“正常化”,而不会“破坏”意图的清晰性,方法是将整个表达式分组,然后围绕着开始/结束锚(而不是在每个选项中重复这些,如上面所示)。虽然这样做的结果总体上是类似的长度规则,但是当我们添加额外的非捕获组时:

^(?:(?:[2-9]{3}[a-z0-9]{7})|(?:[1-9]{4}[a-z0-9]{7})|(?:[0-9]{7}[a-z0-9]{5,}))$

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15736649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档