`

通过正则判断手机用户

    博客分类:
  • J2SE
阅读更多
写的~! 留下脚印
配置文件config.propertise
unicom=133|132|131|134
chinamobile=135|136|137|138|139|159
reg_templete=^0?(_phone_)[0-9]{8}

主要的类方法
package demo.phone;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.regex.Pattern;

public class Phone {
	private String unicom;
	private String chinamobile;
	private String reg_templete;
	private String runicom;
	private String rchinamobile;
	public Phone() {
		//读取配置文件
		Properties prop = new Properties();
		try {
			prop.load(new FileInputStream("D://workspace//gsj//phone//src//demo//phone//config.properties"));
			//联通的号段
			unicom=prop.getProperty("unicom");
			//移动的号段
			chinamobile=prop.getProperty("chinamobile");
			//表达式模板
			reg_templete=prop.getProperty("reg_templete");
			//联通的表达式
			runicom=reg_templete.replaceAll("_phone_",unicom);
			//移动的表达式
			rchinamobile=reg_templete.replaceAll("_phone_",chinamobile);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public int validate(String phone){
		if(validateUnicom(phone))
			return 1;//联通的号码
		if(validateChinamobile(phone))
			return 2;//移动的号码
		return 0;//小灵通号码
	}
	//判断是否是联通的号码
	private boolean validateUnicom(String phone){
		return Pattern.compile(runicom).matcher(phone).matches();
	}
	//判断是否是移动的号码
	private boolean validateChinamobile(String phone){
		return Pattern.compile(rchinamobile).matcher(phone).matches();
	}
}

用于测试的方法
package demo.phone;

public class Main {

	public static void main(String[] args) {
		//如果是1表示联通,2移动,3小灵通
		Say("013578481235");
		Say("13678481235");
		Say("13378481235");
		Say("13178481235");
		Say("015978481235");
		Say("99690814");
		Say("89892015");
	}
	public static void Say(String phone){
		Phone p = new Phone();
		System.out.println(phone+"  "+p.validate(phone));
	}

}
分享到:
评论

相关推荐

    java使用正则表达式判断手机号的方法示例

    主要介绍了java使用正则表达式判断手机号的方法,分析了手机号码段的原理及java使用正则表达式针对手机号的匹配操作实现技巧,需要的朋友可以参考下

    ios-对正则判断的封装、一次调用判断多个控件.zip

    包含分类IBInspectable、模型、以及字典三种情况下对控件进行正则判断的封装、可以同时判断多个类型,方便使用,包括手机号、银行卡、身份证、邮箱以及其他基础验证,比如说在注册界面只需调用一次判断就可对账户、...

    ios-正则判断封装.zip

    主要对基础的正则判断类型进行封装,可以同时判断多个类型,方便使用,包括手机号、银行卡、身份证、邮箱以及其他基础验证,比如说在注册界面只需调用一次判断就可对账户、密码、验证码进行判断

    c#使用正则表达式验证电话号码

    c#使用正则表达式验证电话号码,程序可以很好运行,方便大家学习

    Python正则匹配判断手机号是否合法的方法

    正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些匹配某个模式的文本。 # 需求 # 定义一个函数,用于判断输入的手机号是否合法 # 并...

    java 使用正则表达式验证电话号码的格式

    java 使用正则表达式验证电话号码的格式 java 使用正则表达式验证电话号码的格式

    ios-运用正则表达式判断移动、联通、电信手机号码格式.zip

    运用正则表达式对输入的手机号码进行检测,判断手机号码的格式是否正确

    手机号码,密码正则验证

    神奇的正则表达式可以帮助我们搞定所需的格式验证,常用的有手机号码,密码等,另附上做项目经常用到的一些正则,记录一下

    JAVA正则表达式的应用

    从输入的字符串中判断是否包含手机号码 正则表达式可以使用" +86| 86 1 d{10}" 如果包含请将其在控制台打印出来 否则输出不包含字符串 回到第一步">JAVA正则表达式应用:任意输入一串字符串 如何输入exit...

    Java使用正则表达式验证手机号和电话号码的方法

    今天小编就为大家分享一篇关于Java使用正则表达式验证手机号和电话号码的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    使用正则表达式判断是否为手机号码(简单且实用)

    下面一段代码是关于正在表达式判断是否为手机号码的代码,具体代码如下所述: ...以上所述是小编给大家介绍的使用正则表达式判断是否为手机号码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时

    经典JavaScript正则表达式实战

    正则判断是否为数字与字母的混合... 16 空格与英文同时存在... 17 显示或者保存正则表达式匹配的部分内容... 18 正则表达式替换变量... 18 正则替换指定属性中的文本... 19 将阿拉伯数字替换为中文大写形式... 20 ...

    PHP手机号码及邮箱正则表达式实例解析

    php用正则表达式判断手机号码的写法:从文章中匹配出所有的手机号就可以preg_match_all(),如果要检查用户输入的手机号是否正确可这样来检查:preg_match(). 用正则匹配手机号码的时候, 我们先分析一下手机号码的规律: ...

    JS使用正则表达式判断输入框失去焦点事件

    项目的正则表达式规则 1:用户名: 大写字母开头 6-20位字符(不允许有符号但是允许有_) 2:密码 大写开头 数字字母符号混合 8-15位 3:确认密码 大写开头 数字字母符号混合 8-15位 4:邮箱 邮箱格式 5:手机号 手机号格式 ...

    Oracle数据库正则表达式使用场景代码实例

    无论是在前端还是后台正则表达式都是一个至关重要的知识点,例如判断一个手机号码输入是否正确,如果使用Java、C或者其他语言进行字符串进行判断,也许写几十行代码都不一定能解决,而且漏洞百出,而使用正则表达式...

    正则表达式

    我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换...

Global site tag (gtag.js) - Google Analytics