Regex 手机号 座机 正则表达式

最近在工作中需要判断一个号码是否是手机号,是否是座机号。

在网上也搜到了大家总结的方法,没有直接使用这些方法是因为:手机号码在不断开始新的号码段(比如17x),座机号中个别区号由于行政区域的变化而废除。

这里的手机和座机的正则表达式基于本文作者目前找到的最新的手机号码段,区号(截止到2015年8月)。

座机号码:http://baike.baidu.com/view/103379.htm.

new Regex(@"^0?(10|(2|3[1,5,7]|4[1,5,7]|5[1,3,5,7]|7[1,3,5,7,9]|8[1,3,7,9])[0-9]|91[0-7,9]|(43|59|85)[1-9]|39[1-8]|54[3,6]|(701|580|349|335)|54[3,6]|69[1-2]|44[0,8]|48[2,3]|46[4,7,8,9]|52[0,3,7]|42[1,7,9]|56[1-6]|63[1-5]|66[0-3,8]|72[2,4,8]|74[3-6]|76[0,2,3,5,6,8,9]|82[5-7]|88[1,3,6-8]|90[1-3,6,8,9])\d{7,8}$");

手机号码:http://baike.baidu.com/view/58286.htm

new Regex(@"^0?(13\d|14[5,7]|15[0-3,5-9]|17[0,6-8]|18\d)\d{8}$");

请注意,本正则表达式:

支持以下格式手机号:013622335533,13622335533;座机号:01087654321,1087654321

不支持以下格式手机号:17951139012345678;座机: 010-88554433;(010)85443322;+86 10 32454433;

但是, 以上所列正则表达式只需要稍作修改即可支持以上所列格式,请开动脑筋自己解决吧:)。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 06:11:59

Regex 手机号 座机 正则表达式的相关文章

groovy regex groups(groovy正则表达式组)

先看一个java正则表达式的例子. import java.util.regex.Matcher; import java.util.regex.Pattern; public class TestMatch { public static void main(String[] args) { Pattern pattern = Pattern.compile("G.*"); Matcher matcher = pattern.matcher("Groovy");

JS校验手机号 座机 邮箱 微信号

    // 校验手机号 1开头11位数字 function checkMobile(str) {     var re = /^1\d{10}$/     if(str.length==0){         $("#mobileTip").html("");      return; }else if (!re.test(str)) {         $("#mobileTip").html("手机号格式不正确");  

从一个手机号开始-正则表达式

如果图片挂了,请访问:http://www.jianshu.com/p/d989cf2453dd 正则表达式是描述一组字符串特征的模式,用来匹配特定的字符串. –Ken Thompson 虽然有点抽秀,但是我觉得大家已经模模糊糊的明白了. 你应该有的工具 为了直观的看到你的对错,请使用网站在线正则测试 最笨的"匹配" 我的上一个手机号码是 18615654686,当然,作为天朝子民,前面是有个+86的,这个大家都见过的,现在假设一个场景: 本人的电话被一部2000万字的电子小说引用了,

验证手机号的正则表达式

手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134.135.136.137.138.139.145.147.150.151.152.155.156.157.158.159.182.185.186.187.188) 手机名称有CDMA:表示只支持中国电信2G号段(133.153.180.181.189) 手机名称有WCDMA/GSM:表示支持中国联通或者中国移动2G号段,以及中国联通3G号段(130.131.132.134.135.136.137.138.13

Windows环境下CodeBlocks导入GNU Regex Library 正则表达式

标准的C/C++库中不支持正则表达式,因此需要第三方的库来支持.我使用的是GNU Regex Library. 正则表达式的语链接:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx. 以下是在CodeBlocks导入步骤: 1. 打开下载地址:http://gnuwin32.sourceforge.net/packages/regex.htm: 2. 在"Download"处选择“Complete package

PHP表单常用正则表达式(URL、HTTP、手机、邮箱等)

<?php /** * @description: 正则表达式匹配 */ class Regex { /** * @手机号 */ public static function Phone($subject) { $pattern='/^(0|86|17951)?(13[0-9]|15[012356789]|1[78][0-9]|14[57])[0-9]{8}$/'; return Regex::PublicMethod($pattern, $subject); } /** * @数字 */ pu

java正则表达式笔记

1.正则表达式的概述和简单使用 A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. 作用:比如注册邮箱,邮箱有用户名和密码,一般会对其限制长度,这个限制长度的事情就是正则表达式做的 作用:专门用于操作字符串                特点:用一些特定的符号来表示一些代码的操作.这样就简化书写. 所以学正则表达式,就是学习一些特殊符号的使用. 好处:可以简化对字符串的操作 弊端:符号定义越多,正则越长,阅读性越差 B:案例演

C# 正则表达式(一)

首先来复习一下正则表达式的基础知识,本篇文章分为2个部分,第一个部分复习正则表达式中的元字符和简写表达式,第二部分复习正则表达式的匹配和提取. 1.正则表达式中的元字符和简写表达式 ".":它匹配除\n之外的任何单个字符. "{n,}",表示前面的字符至少出现n次,最多不限. "{n,m}"表示前面的字符至少出现n次,最多出现m次. "+":加号匹配紧挨着它前面的字符出现1次或多次.用上面的表达式可以这么写:{1,} &quo

Java:正则表达式的详解

正则表达式:符合一定规则的表达式. 作用:用于专门操作字符串. 特点:用一些特定的符号来表示一些代码的操作.这样就简化书写.所以学习正则表达式就是学习一些特殊符号的使用. 好处:可以简化对字符串的操作. 弊端:符号定义越多,正则越长,阅读性越差. 具体操作功能: 1.匹配    boolean matches(String regex) 告知此字符串是否匹配给定的正则表达式. 用规则匹配整字符串,只要有一处不符合规则,就匹配结束,返回false 2.切割    String[] split(St