文档章节

Java匹配国内手机号码段

Arthur126
 Arthur126
发布于 2016/12/07 17:22
字数 327
阅读 115
收藏 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
徐汇
高级程序员
私信 提问
SHA1的算法,java和javascript的处理中文结果不一样,路过的帮忙看下

jquery.encoding.js: java代码: 问题出在处理中文上, javascript: $.encoding.digests.hexSha1Str("手机号码"); 结果:CEA1FD2EEB776E0294F83E774B47266867024BBC java: System.out.pri......

喵小强
2014/08/25
2.1K
5
JAVA,Ajax 查询手机号码归属地 地址

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

郏高阳
2012/10/17
0
0
支付宝发布Java平台支付标准 解决非智能机支付

【TechWeb消息】10月14日消息,在全球Java One大会上,支付宝发布了针对Java平台的支付技术标准,帮助Java规范的OJWC 3.1实现在支付服务(Java Payment)。支付宝方面表示,该方案将帮助全球嵌...

蔡熙伟
2011/10/15
1K
5
技术咨询服务

J2Cache 是 OSChina 目前正在使用的两级缓存框架。第一级缓存使用 Ehcache,第二级缓存使用 Redis 。由于大量的缓存读取会导致 L2 的网络成为整个系统的瓶颈,因此 L1 的目标是降低对 L2 的读...

慕辰001
2016/01/07
3
0
更严格的手机号码正则表达式写法 --java

要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段, 故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下: 移动:134、135、136、137、138、139、...

William
2010/05/20
6.4K
3

没有更多内容

加载失败,请刷新页面

加载更多

Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
1
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0
day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
昨天
2
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部