文档章节

Java匹配国内手机号码段

Arthur126
 Arthur126
发布于 2016/12/07 17:22
字数 327
阅读 97
收藏 2

目前(2016-12-7)三大运营商最新号段如下

移动号段:
134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 187 188

联通号段:
130 131 132 145 155 156 171 175 176 185 186

电信号段:
133 149 153 173 177 180 181 189
虚拟运营商:
170

参考http://www.cnblogs.com/zengxiangzhan/p/phone.html

通过java语言写一个手机号码段校验工具类PhoneNumUtil如下:

import java.text.ParseException;
import java.util.regex.Pattern;

import org.apache.commons.lang.StringUtils;

/**
 * 手机号码工具类
 */
public class PhoneNumUtil {
	
	public static void main(String[] args) throws ParseException {
		System.out.println(checkPhone("13801246482"));
		System.out.println(checkPhone("17001246482"));
		System.out.println(checkPhone("1501246482"));
	}

	/**
	 * 中国手机号码校验
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean checkPhone(String phone) {
		if (StringUtils.isNotBlank(phone)) {
			Pattern regexp = Pattern.compile("^(13[0-9]|14[579]|15[012356789]|17[135678]|18[0-9])[0-9]{8}$");
			if (regexp.matcher(phone).matches()) {
				return true;
			}
		}
		return false;
	}

	/**
	 * 中国移动手机号码校验
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean checkChinaMobile(String phone) {
		if (StringUtils.isNotBlank(phone)) {
			Pattern regexp = Pattern.compile("^(13[456789]|14[7]|15[012789]|17[8]|18[23478])[0-9]{8}$");
			if (regexp.matcher(phone).matches()) {
				return true;
			}
		}
		return false;
	}

	/**
	 * 中国联通手机号码校验
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean checkChinaUnicom(String phone) {
		if (StringUtils.isNotBlank(phone)) {
			Pattern regexp = Pattern.compile("^(13[012]|14[5]|15[56]|17[156]|18[56])[0-9]{8}$");
			if (regexp.matcher(phone).matches()) {
				return true;
			}
		}
		return false;
	}

	/**
	 * 中国电信手机号码校验
	 * 
	 * @param phone
	 * @return
	 */
	public static boolean checkChinaTelecom(String phone) {
		if (StringUtils.isNotBlank(phone)) {
			Pattern regexp = Pattern.compile("^(13[3]|14[9]|15[3]|17[37]|18[019])[0-9]{8}$");
			if (regexp.matcher(phone).matches()) {
				return true;
			}
		}
		return false;
	}

}

 

© 著作权归作者所有

共有 人打赏支持
Arthur126
粉丝 1
博文 33
码字总数 17900
作品 0
徐汇
高级程序员
JAVA,Ajax 查询手机号码归属地 地址

在网上找了很多、如果根据网络提供的API直接JS Ajax查询会出问题:拒绝访问 网上说是跨域了、解决办法就是java后台访问这个API地址。下面罗列一些网络上的API地址。 手机网 http://api.showj...

郏高阳
2012/10/17
0
0
java poi导入excel日期处理

java导入execl常见问题 一,导入的日期为一串数字 如“320422192610161818” 1, 在java导出excel时获取到的日期或其他列是一串数字,并且不管怎么更改都为数字则可以判断为模板有问题 解决办...

菜鸟来了
2015/04/18
0
0
Java利器——正则表达式详解!

  小编提示:此篇文章阅读时间为15分钟左右,可先收藏后阅读。   前言   正则表达式是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换。许多语言...

恒生开发者社区
2017/03/14
0
0
java.util.regex Pattern 正则

/**String 中 replaceAll(),matches(),split() 等方法,都是调用Pattern中的方法。学习了,瞬间觉得Pattern强大了 public String replaceAll(String regex, String replacement) {return Pat......

happycode
2014/04/02
0
1
299. Bulls and Cows - LeetCode

Question 299. Bulls and Cows Solution 题目大意:有一串隐藏的号码,另一个人会猜一串号码(数目相同),如果号码数字与位置都对了,给一个bull,数字对但位置不对给一个cow,注:数字对与位置对优先...

yysue
07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

原型模式

1、原型模式-定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 克隆(浅度克隆->拷贝值类型或者引用,深度克隆->创建新的对象,开辟新的内存) 例如客户端知道抽象Pro...

阿元
今天
47
0
awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
今天
42
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
47
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
42
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
47
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部