10-03
11

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);  
    }  
}  



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 319
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭