經常使用正則表達試

經常使用正則表達試

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);   
    }   
相關文章
相關標籤/搜索