要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,

  故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:

  移动: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卫通)

以上这些只是过去已知的,可能还随时在增加或在变,比如小米移动的17x开头的号段。

但我们把它封装到一个实用工具类中,所有用到的地方都使用这一处代码,有变更的时候修改一下这里就可以了。

  那么现在就可以使用正则匹配测试:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 移动相关操作实用类 MobileUtils
 *
 * @author lipw
 * @date 2017年7月5日上午11:25:45
 */
public class MobileUtils {

	/**
	 * 验证手机号
	 * @author lipw
	 * @date   2017年4月5日上午11:34:07
	 * @param mobiles
	 * 手机号码
	 * @return
	 * 有效返回true,否则返回false
	 */
	public static boolean isMobileNO(String mobiles) {

		// Pattern p =
		// Pattern.compile("^((147)|(17[0-9])|(13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");
		Pattern p = Pattern.compile("^((13[0-9])|(15[^4])|(18[0-9])|(17[0-9])|(147))\\d{8}$");
		Matcher m = p.matcher(mobiles);
		return m.matches();
	}
}

java-正则表达式判断手机号的更多相关文章

  1. js java正则表达式替换手机号4-7位为星*号

    需求: 一个手机号13152461111,由于安全性,需要替换4-7位字符串为星号,为131****1111,那么有2中玩法,一种是前端隐藏,一种是后台隐藏. 1. 前台隐藏 <!DOCTYPE ...

  2. JAVA正则表达式判断元音

    /* * 判断字符串”qaq”中间的字符是否是元音 * * aeiou * AEIOU * */ (1)正则表达式 (2) (3)

  3. swift4.0 正则表达式判断手机号

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #ffffff; background-color: #282b3 ...

  4. Java中用正则表达式判断日期格式是否正确

    1.Java中用正则表达式判断日期格式是否正确 DateType.java: /** * @Title:DateType.java * @Package:com.you.dao * @Descript ...

  5. 5.9-3 用正则表达式判断字符串text是否为合法的手机号

    package zfc; public class Zfc { public static void main(String[] args) { //判断手机号格式是否合法 String text = ...

  6. iOS开发之判断手机号和邮箱 正则表达式

    #pragma mark --判断手机号合法性 + (BOOL)checkPhone:(NSString *)phoneNumber { NSString *regex = @"^((13[ ...

  7. Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码正则表达式

    Java 常用正则表达式,Java正则表达式,Java身份证校验,最新手机号码校验正则表达式 ============================== ©Copyright 蕃薯耀 2017年11 ...

  8. java 正则表达式语法

    java 正则表达式语法 标签: 正则表达式javawindowsvbscriptscripting电话 2012-05-20 10:11 6705人阅读 评论(1) 收藏 举报  分类: javaS ...

  9. Java 正则表达式[转载]

    PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...

  10. java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

    在javascript中有一个方法isDigit()使用来判断一个字符串是否都是数字,在java的字符串处理方法中没有这样的方法,觉得常常需要用到,于是上网搜了一下,整理出了两个用正则表达式匹配的判断 ...

随机推荐

  1. 微信小程序将带来web程序员的春天!

    微信之父张小龙在年初那次演讲中曾表示:“我自己是很多年的程序员,我觉得我们应该为开发的团体做一些事情.”几个月后,微信正式推出微信应用号(即微信小程序)在互联网中掀起又一波热潮. 过去,对于很多开发者 ...

  2. 让Jackson JSON生成的数据包含的中文以unicode方式编码

      本文出处:http://blog.csdn.net/chaijunkun/article/details/8257209,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建 ...

  3. MongoDB win32-bit 安装

    一念起: 由于本人 用的电脑比较老旧,所以一直用的 是win7 32bit 的操作系统,但是在学习MongoDB的时候 遇到了起步的第一个问题,按照目前 官网最新版MongoDB 3.4.3,已不支持 ...

  4. npm国内镜像设置

    http://cnodejs.org/topic/4f9904f9407edba21468f31e

  5. Mysql字段属性应该尽量设置为not null

    除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL.这看起来好像有点争议,请往下看. 所谓的NULL就是什么都没有,连\0都没有,\0在字符串中是结束符,但是在物 ...

  6. 微服务与SOA

    微服务跟SOA有什么区别呢,可以把微服务当做去除了ESB的SOA.ESB是SOA架构中的中心总线,拓扑结构应该是星形的,而微服务是去中心化的分布式软件架构. 一.巨石(monolith) web应用程 ...

  7. div 文章内容自动分屏显示

    <head runat="server"> <title></title> <script language="javascri ...

  8. ASP.NET MVC CheckBoxFor的int to bool

    当我们使用CheckBoxFor类型需要使用bool ,可以将 int转换成bool <div class="form-group"> <label class= ...

  9. centos/linux扩容Swap分区

    查看现在的swap容量 [root@node1 ~]# free -h total used free shared buff/cache available Mem: 15G 3.8G 2.1G 5 ...

  10. git代码提交与克隆

    在工作中,越来越多的人会使用git来管理代码.下面简单的介绍一下git在工作中的使用流程 1.给你一个git地址,将代码拉下来基本操作流程如下: 1.1 git clone "项目地址&qu ...