验证手机和座机号码的正则表达式

在应用中验证电话号码是一个常见的功能,而电话号码包括手机号码和座机号码。今天写这个正则表达式写了比较久,记录在这里,以备后用。本文的一个基本假设:手机号码都是11位,座机号码加上区号也是11位

先科普一下座机区号的规则:点击科普。这是网易博客的一篇博文,简单说来座机区号是历史的产物,我也是看了这里才知道个大概。总结起来我认为可以归纳为这样:北京区号010,后面8位数;其他地区以以0为首位,2~9位次位,其余位为0~9。因此总结起来正则式应该是这样:

(010\d{8})|(0[2-9]\d{9})

而手机号则不一样了,手机号的号段不固定,目前能查阅到的运营商号段见下图:

观察可以发现13*系列号段是齐全的,而14开头的只有145、147两个号段,15和18号段除了缺失154、184之外也是齐全的。因此正则表达式列出如下:

(13\d{9})|(14[57]\d{8})|(15[0-35-9]\d{8})|(18[0-35-9]\d{8})

两者连接起来可以验证手机和座机号码,如下:

(010\d{8})|(0[2-9]\d{9})|(13\d{9})|(14[57]\d{8})|(15[0-35-9]\d{8})|(18[0-35-9]\d{8})

上述式子经过在线测试工具初步测试通过,如图:

这个表达式写得有些长,如果有更简洁的写法还请各位不吝赐教,谢谢!

时间: 2024-11-29 06:08:48

验证手机和座机号码的正则表达式的相关文章

座机号码的正则表达式

例子: 座机有效写法: 0316-8418331 (010)-67433539 (010)67433539 010-67433539 (0316)-8418331 (0316)8418331 正则表达式写法 0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d{7,8}|\(?0\d{2,3}[)-]*\d{7,8} 座机号码的正则表达式

身份证号码的正则表达式及验证详解(JavaScript,Regex)

简言 在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案.本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案. 身份证号码说明 居民身份证号码,正确.正式的称谓应该是"公民身份号码".根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 以北京市朝阳区一女性身份证号码为

正则表达式验证手机格式

public class VerifyUtils { /** * 验证手机格式 */ public static boolean isMobileNO(String mobiles) { /* * 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 * 联通:130.131.132.152.155.156.185.186 电信:133.153.180.189.(1349卫通) * 总结起来就是第一位必定为1,第二位必定为3或5或8

身份证号码的正则表达式

<!DOCTYPE HTML><html><head> <meta charset="utf-8"> <title>身份证号码的正则表达式及验证详解(JavaScript,Regex)</title></head><body><div id="main"></div><script> console.log = function(val

验证手机格式

/** * 验证手机格式 */ public static boolean isMobileNO(String mobiles) { /* 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 联通:130.131.132.152.155.156.185.186 电信:133.153.180.189.(1349卫通) 总结起来就是第一位必定为1,第二位必定为3或5或8,其他位置的可以为0-9 */ String telRegex =

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

验证手机和电话号码

//验证手机和电话var matchMobile = /^1[3|4|5|7|8]\d{9}$/; //验证手机 var matchTel = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;  //验证电话 var matchMobileAndTel = /^((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8}

javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式

原文:javascript 验证 yyyy-MM-dd HH:mm:ss 的正则表达式 ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])

手机号码 座机号码验证

<!DOCTYPE html><html><head> <title>validate</title> <meta charset="utf-8"> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <style type="text/css">