求一电话号的正则表达式

ding1021 2007-09-02 04:57:49
需要判断是不是移动电话,如果是固定电话,前面要加0411
也就是说能通过的号码只能是13*********或者0411********
...全文
122 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-过客- 2007-09-02
  • 打赏
  • 举报
回复
过兄,能否解释一下前面的?:什么意思??
-----------------
这个是非捕获组,如果用^(1[35]\d{9}|0411\d{8})$这种方式,会将结果保存到捕获组1里,而这里只是用来判断规则,没必要捕获,所以用非捕获组,主要是为了节省资源,这个只用到了一个捕获组,所以一般来说没什么影响,但是像日期正则那种用到了数十个捕获组的,就会影响性能了


就是如果我只想判断是11位数字或12位数字应该怎么写
--------
如果只限制11位或12位的数字,而不限制内容,那这样就可以了

^\d{11,12}$
liuyun1987 2007-09-02
  • 打赏
  • 举报
回复
写个简单易懂的吧
13\d{9}表示13开头后面再接9个数字
0441\d{8}
ding1021 2007-09-02
  • 打赏
  • 举报
回复
lxcnn(过客) ( ) 信誉:100
=============================
谢谢,我是大连的,你这个表达式就是我想要的,不过我还想问一个,就是如果我只想判断是11位数字或12位数字应该怎么写,如手机号是11位的数字,固话是12位的数字,用户输入也只能是输入11或12位数字。
JustLovePro 2007-09-02
  • 打赏
  • 举报
回复
^(?:1[35]\d{9}|0411\d{8})$
-----
过兄,能否解释一下前面的?:什么意思??
-过客- 2007-09-02
  • 打赏
  • 举报
回复
try

^(?:1[35]\d{9}|0411\d{8})$

试下是不是你要的结果吧,如果有不符的,给出实例

现在手机号有15号段,虽然目前只有153,156,158,159,考虑到扩展性,就只限制15了

楼主大连的?大连现在固话为8位

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧