`
雨辰RainTime
  • 浏览: 112406 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java使用正则表达式——实例

    博客分类:
  • Java
阅读更多
网上关于java使用正则的现成的例子不多,发一个以前写的一个类,供大家参考。

这个类基本满足了平常的需要,有其他需要的我再添加

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author        Der    
 * @date          2006-10-23
 * @packeage_name regex
 * 
 */
public class RegexChk
{

	public  boolean startCheck(String reg,String string)
	{
		boolean tem=false;
		
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher=pattern.matcher(string);
		
		tem=matcher.matches();
		return tem;
	}
	

         /**
	 * 检验整数,适用于正整数、负整数、0,负整数不能以-0开头, 
          * 正整数不能以0开头
	 * 
	 * */
	public boolean checkNr(String nr)
	{
		String reg="^(-?)[1-9]+\\d*|0";
		return startCheck(reg,nr);
	}

	/**
	 * 手机号码验证,11位,不知道详细的手机号码段,只是验证开头必须是1和位数
	 * */
	public boolean checkCellPhone(String cellPhoneNr)
	{
		String reg="^[1][\\d]{10}";
		return startCheck(reg,cellPhoneNr);
	}
	
	/**
	 * 检验空白符
	 * */
	public boolean checkWhiteLine(String line)
	{
		String regex="(\\s|\\t|\\r)+";
		
		return startCheck(regex,line);
	}
	
	
	/**
	 * 检查EMAIL地址
	 * 用户名和网站名称必须>=1位字符
	 * 地址结尾必须是以com|cn|com|cn|net|org|gov|gov.cn|edu|edu.cn结尾
	 * */
	public boolean checkEmailWithSuffix(String email)
	{
		String regex="\\w+\\@\\w+\\.(com|cn|com.cn|net|org|gov|gov.cn|edu|edu.cn)";
		
		return startCheck(regex,email);
	}
	
	
	/**
	 * 检查EMAIL地址
	 * 用户名和网站名称必须>=1位字符
	 * 地址结尾必须是2位以上,如:cn,test,com,info
	 * */
	public boolean checkEmail(String email)
	{
		String regex="\\w+\\@\\w+\\.\\w{2,}";
		
		return startCheck(regex,email);
	}
	
	/**
	 * 检查邮政编码(中国),6位,第一位必须是非0开头,其他5位数字为0-9
	 * */
	public boolean checkPostcode(String postCode)
	{
		String regex="^[1-9]\\d{5}";
		return startCheck(regex,postCode);
	}
	
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾
	 * 用户名有最小长度和最大长度限制,比如用户名必须是4-20位
	 * */
	public boolean checkUsername(String username,int min,int max)
	{
		String regex="[\\w\u4e00-\u9fa5]{"+min+","+max+"}(?<!_)";
		return startCheck(regex,username);
	}
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字,不能以"_"结尾
	 * 有最小位数限制的用户名,比如:用户名最少为4位字符
	 * */
	public boolean checkUsername(String username,int min)
	{
		//[\\w\u4e00-\u9fa5]{2,}?
		String regex="[\\w\u4e00-\u9fa5]{"+min+",}(?<!_)";
		
		return startCheck(regex,username);
	}
	
	/**
	 * 检验用户名
	 * 取值范围为a-z,A-Z,0-9,"_",汉字
	 * 最少一位字符,最大字符位数无限制,不能以"_"结尾
	 * */
	public boolean checkUsername(String username)
	{
		String regex="[\\w\u4e00-\u9fa5]+(?<!_)";
		return startCheck(regex,username);
	}
	
	/**
	 *  查看IP地址是否合法
	 * */
	public boolean checkIP(String ipAddress)
	{
		String regex="(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +
				     "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";
		
		return startCheck(regex,ipAddress);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式:010-67676767,区号长度3-4位,必须以"0"开头,号码是7-8位
	 * */
	public boolean checkPhoneNr(String phoneNr)
	{
		String regex="^[0]\\d{2,3}\\-\\d{7,8}";
		
		return startCheck(regex,phoneNr);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式:6767676, 号码位数必须是7-8位,头一位不能是"0"
	 * */
	public boolean checkPhoneNrWithoutCode(String phoneNr)
	{
		String reg="^[1-9]\\d{6,7}";
		
		return startCheck(reg,phoneNr);
	}
	
	/**
	 * 验证国内电话号码
	 * 格式:0106767676,共11位或者12位,必须是0开头
	 * */
	public boolean checkPhoneNrWithoutLine(String phoneNr)
	{
		String reg="^[0]\\d{10,11}";
		
		return startCheck(reg,phoneNr);
	}
	
	/**
	 * 验证国内身份证号码:15或18位,由数字组成,不能以0开头
	 * */
	public boolean checkIdCard(String idNr)
	{
		String reg="^[1-9](\\d{14}|\\d{17})";
		
		return startCheck(reg,idNr);
	}
	
	/**
	 * 网址验证<br>
	 * 符合类型:<br>
	 *         http://www.test.com<br>
	 *         http://163.com
	 * */
	public boolean checkWebSite(String url)
	{
		//http://www.163.com
		String reg="^(http)\\://(\\w+\\.\\w+\\.\\w+|\\w+\\.\\w+)";
		
		return startCheck(reg,url);
	}
分享到:
评论
1 楼 piper 2009-12-08  
身份证有问题,可以由x

相关推荐

    正则表达式经典实例中文版 (美)高瓦特斯

    即使有经验的用户也经常会遇到性能不佳、误报、漏报等让人挠头的错误,《正则表达式经典实例》对于如何使用正则表达式来解决一些常见的问题给出了按部就班的解决方案,其中包括C#、Java、JavaScript、Perl、PHP、...

    js:校验IPv6地址的正则表达式

    jquery 正整数数字校验正则表达式JavaScript正则表达式校验非零的正整数实例利用js正则表达式校验正数、负数、和小数Javascript校验密码复杂度的正则表达式最全的常用正则表达式大全——包括校验数字、字符、一些...

    搜索引擎零距离——基于Ruby+Java搜索引擎原理与实现(前三章)

    本书涉及网络数据挖掘、搜索引擎原理、编译原理、数据库原理、正则表达式、软件工程、设计模式、Ruby语言、HTTP协议等计算机科学与技术的知识,适合搜索引擎开发人员作为参考,也适合有一定计算机基础的读者阅读,以...

    Java JDK实例宝典

    14 使用正则表达式验证电话号码的格式 第6章 Java异常处理 6. 1 throw. throws. try和catch 6. 2 自定义异常类 6. 3 使用finally 6. 4 使用异常的技巧与原则 第7章 IO——输入输出流 7...

    Java开发技术大全 电子版

    13.7.4正则表达式中的其他通用规则424 13.7.5使用技巧425 13.8Pattern类的使用426 13.9Matcher类的使用428 13.9.1匹配方法的使用429 13.9.2替换方法的使用430 13.9.3组匹配的使用431 13.9.4检验E-mail的合法...

    Java开发详解.zip

    031115_【第11章:Java常用类库】_正则表达式笔记.pdf 031116_【第11章:Java常用类库】_定时调度笔记.pdf 031201_【第12章:JAVA IO】_File类笔记.pdf 031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 ...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 ...

    Python 核心编程 目录

     学习更多的高阶内容,如正则表达式、网络、多线程、图形用户界面、Web/CGl和Python扩展等  包括几个全新的章节,关于数据库、网络客户端、Java/Jytt30n和Microsoft Office等  展示数以百计的代码片段、交互...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的...

    Google+Android+SDK开发范例大全

    第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送...

    Google Android SDK开发范例大全的目录

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 -p160 5.4 自制发送Email程序——Intent在Email上...

    Google Android sdk 开发范例大全 部分章节代码

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 -p160 5.4 自制发送Email程序——Intent在Email上...

    Google Android SDK 开发范例大全01

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 -p160 5.4 自制发送Email程序——Intent在Email上...

    Google Android SDK 开发范例大全02

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 -p160 5.4 自制发送Email程序——Intent在Email上...

    Google Android SDK开发范例大全(完整版)

    5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送短信程序——SmsManager与PendingIntent对象 5.4 自制发送Email程序——Intent在Email上的使用 ...

Global site tag (gtag.js) - Google Analytics