判断一串数字是否是手机号的工具类

/**
 * 用于判断一串数字是否是手机号
 * 
 * @author Administrator
 * 
 */
public class TelNumMatch {

	/*
	 * 移动: 2G号段(GSM网络)有139,138,137,136,135,134,159,158,152,151,150,
	 * 3G号段(TD-SCDMA网络)有157,182,183,188,187 147是移动TD上网卡专用号段. 联通:
	 * 2G号段(GSM网络)有130,131,132,155,156 3G号段(WCDMA网络)有186,185 电信:
	 * 2G号段(CDMA网络)有133,153 3G号段(CDMA网络)有189,180
	 */
	static String YD = "^[1]{1}(([3]{1}[4-9]{1})|([5]{1}[012789]{1})|([8]{1}[2378]{1})|([4]{1}[7]{1}))[0-9]{8}$";
	static String LT = "^[1]{1}(([3]{1}[0-2]{1})|([5]{1}[56]{1})|([8]{1}[56]{1}))[0-9]{8}$";
	static String DX = "^[1]{1}(([3]{1}[3]{1})|([5]{1}[3]{1})|([8]{1}[09]{1}))[0-9]{8}$";

	String mobPhnNum;

	public TelNumMatch(String mobPhnNum) {
		this.mobPhnNum = mobPhnNum;
		Log.d("tool", mobPhnNum);
	}

	public int matchNum() {
		/**
		 * flag = 1 YD 2 LT 3 DX 
		 */
		int flag;// 存储匹配结果
		// 判断手机号码是否是11位
		if (mobPhnNum.length() == 11) {
			// 判断手机号码是否符合中国移动的号码规则
			if (mobPhnNum.matches(YD)) {
				flag = 1;
			}
			// 判断手机号码是否符合中国联通的号码规则
			else if (mobPhnNum.matches(LT)) {
				flag = 2;
			}
			// 判断手机号码是否符合中国电信的号码规则
			else if (mobPhnNum.matches(DX)) {
				flag = 3;
			}
			// 都不合适 未知
			else {
				flag = 4;
			}
		}
		// 不是11位
		else {
			flag = 5;
		}
		Log.d("TelNumMatch", "flag"+flag);
		return flag;
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值