要更加准确的匹配手机号码只匹配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();
	}
}

最新文章

  1. drbd
  2. 我所理解的OOP——UML六种关系(转)
  3. 碰到这个SB错误,'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.点办
  4. vijos P1352 最大获利(最小割)
  5. 每天一个Linux命令(19)--find命令
  6. 用shell实现linux系统应用文件清理工具
  7. 微信小程序与Java后台通信
  8. Angel - MemoryDataBlock - angel.task.estimize.sample.number
  9. LearnOpenGL学习笔记(二)——着色器简单理解
  10. laravel 集合
  11. HTML5<input>标签
  12. (转)C#读取MAC的几种方法
  13. H5地理位置定位
  14. 高性能网站架构缓存——redis集群
  15. 查看tomcat启动文件都干点啥---catalina.bat(转)
  16. HDUOJ--点球大战
  17. 信号(Django信号、Flask信号、Scrapy信号)
  18. consul 1.2 支持service mesh
  19. JavaScript定义类的方式与其它OO语言有些差异
  20. 【C#】ORM框架

热门文章

  1. Delphi 正则表达式语法(1): 关于大小写与中文
  2. 名称空间(Namespaces)(转)
  3. Android 属性自定义及使用获取浅析
  4. PAT 天梯赛 L1-018. 大笨钟 【水】
  5. cdoj 秋实大哥搞算数
  6. java synchronized和(ReentrantLock)区别
  7. java byte为何范围是-128~127
  8. Linux系统服务管理 服务管理
  9. c#基础-自动内存管理
  10. 【Java】仿真qq尝试:用户注册(一)