java使用正則表達式——實例


Java代碼   
  1. import java.util.regex.Matcher;  
  2. import java.util.regex.Pattern;  
  3.   
  4. /** 
  5.  * @author        Der     
  6.  * @date          2006-10-23 
  7.  * @packeage_name regex 
  8.  *  
  9.  */  
  10. public class RegexChk  
  11. {  
  12.   
  13.     public  boolean startCheck(String reg,String string)  
  14.     {  
  15.         boolean tem=false;  
  16.           
  17.         Pattern pattern = Pattern.compile(reg);  
  18.         Matcher matcher=pattern.matcher(string);  
  19.           
  20.         tem=matcher.matches();  
  21.         return tem;  
  22.     }  
  23.       
  24.   
  25.          /** 
  26.      * 檢驗整數,適用於正整數、負整數、0,負整數不能以-0開頭,  
  27.           * 正整數不能以0開頭 
  28.      *  
  29.      * */  
  30.     public boolean checkNr(String nr)  
  31.     {  
  32.         String reg="^(-?)[1-9]+\\d*|0";  
  33.         return startCheck(reg,nr);  
  34.     }  
  35.   
  36.     /** 
  37.      * 手機號碼驗證,11位,不知道詳細的手機號碼段,只是驗證開頭必須是1和位數 
  38.      * */  
  39.     public boolean checkCellPhone(String cellPhoneNr)  
  40.     {  
  41.         String reg="^[1][\\d]{10}";  
  42.         return startCheck(reg,cellPhoneNr);  
  43.     }  
  44.       
  45.     /** 
  46.      * 檢驗空白符 
  47.      * */  
  48.     public boolean checkWhiteLine(String line)  
  49.     {  
  50.         String regex="(\\s|\\t|\\r)+";  
  51.           
  52.         return startCheck(regex,line);  
  53.     }  
  54.       
  55.       
  56.     /** 
  57.      * 檢查EMAIL地址 
  58.      * 用戶名和網站名稱必須>=1位字符 
  59.      * 地址結尾必須是以com|cn|com|cn|net|org|gov|gov.cn|edu|edu.cn結尾 
  60.      * */  
  61.     public boolean checkEmailWithSuffix(String email)  
  62.     {  
  63.         String regex="\\w+\\@\\w+\\.(com|cn|com.cn|net|org|gov|gov.cn|edu|edu.cn)";  
  64.           
  65.         return startCheck(regex,email);  
  66.     }  
  67.       
  68.       
  69.     /** 
  70.      * 檢查EMAIL地址 
  71.      * 用戶名和網站名稱必須>=1位字符 
  72.      * 地址結尾必須是2位以上,如:cn,test,com,info 
  73.      * */  
  74.     public boolean checkEmail(String email)  
  75.     {  
  76.         String regex="\\w+\\@\\w+\\.\\w{2,}";  
  77.           
  78.         return startCheck(regex,email);  
  79.     }  
  80.       
  81.     /** 
  82.      * 檢查郵政編碼(中國),6位,第一位必須是非0開頭,其他5位數字為0-9 
  83.      * */  
  84.     public boolean checkPostcode(String postCode)  
  85.     {  
  86.         String regex="^[1-9]\\d{5}";  
  87.         return startCheck(regex,postCode);  
  88.     }  
  89.       
  90.     /** 
  91.      * 檢驗用戶名 
  92.      * 取值范圍為a-z,A-Z,0-9,"_",漢字,不能以"_"結尾 
  93.      * 用戶名有最小長度和最大長度限制,比如用戶名必須是4-20位 
  94.      * */  
  95.     public boolean checkUsername(String username,int min,int max)  
  96.     {  
  97.         String regex="[\\w\u4e00-\u9fa5]{"+min+","+max+"}(?<!_)";  
  98.         return startCheck(regex,username);  
  99.     }  
  100.     /** 
  101.      * 檢驗用戶名 
  102.      * 取值范圍為a-z,A-Z,0-9,"_",漢字,不能以"_"結尾 
  103.      * 有最小位數限制的用戶名,比如:用戶名最少為4位字符 
  104.      * */  
  105.     public boolean checkUsername(String username,int min)  
  106.     {  
  107.         //[\\w\u4e00-\u9fa5]{2,}?  
  108.         String regex="[\\w\u4e00-\u9fa5]{"+min+",}(?<!_)";  
  109.           
  110.         return startCheck(regex,username);  
  111.     }  
  112.       
  113.     /** 
  114.      * 檢驗用戶名 
  115.      * 取值范圍為a-z,A-Z,0-9,"_",漢字 
  116.      * 最少一位字符,最大字符位數無限制,不能以"_"結尾 
  117.      * */  
  118.     public boolean checkUsername(String username)  
  119.     {  
  120.         String regex="[\\w\u4e00-\u9fa5]+(?<!_)";  
  121.         return startCheck(regex,username);  
  122.     }  
  123.       
  124.     /** 
  125.      *  查看IP地址是否合法 
  126.      * */  
  127.     public boolean checkIP(String ipAddress)  
  128.     {  
  129.         String regex="(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +  
  130.                      "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +  
  131.                      "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])\\." +  
  132.                      "(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])";  
  133.           
  134.         return startCheck(regex,ipAddress);  
  135.     }  
  136.       
  137.     /** 
  138.      * 驗證國內電話號碼 
  139.      * 格式:010-67676767,區號長度3-4位,必須以"0"開頭,號碼是7-8位 
  140.      * */  
  141.     public boolean checkPhoneNr(String phoneNr)  
  142.     {  
  143.         String regex="^[0]\\d{2,3}\\-\\d{7,8}";  
  144.           
  145.         return startCheck(regex,phoneNr);  
  146.     }  
  147.       
  148.     /** 
  149.      * 驗證國內電話號碼 
  150.      * 格式:6767676, 號碼位數必須是7-8位,頭一位不能是"0" 
  151.      * */  
  152.     public boolean checkPhoneNrWithoutCode(String phoneNr)  
  153.     {  
  154.         String reg="^[1-9]\\d{6,7}";  
  155.           
  156.         return startCheck(reg,phoneNr);  
  157.     }  
  158.       
  159.     /** 
  160.      * 驗證國內電話號碼 
  161.      * 格式:0106767676,共11位或者12位,必須是0開頭 
  162.      * */  
  163.     public boolean checkPhoneNrWithoutLine(String phoneNr)  
  164.     {  
  165.         String reg="^[0]\\d{10,11}";  
  166.           
  167.         return startCheck(reg,phoneNr);  
  168.     }  
  169.       
  170.     /** 
  171.      * 驗證國內身份證號碼:15或18位,由數字組成,不能以0開頭 
  172.      * */  
  173.     public boolean checkIdCard(String idNr)  
  174.     {  
  175.         String reg="^[1-9](\\d{14}|\\d{17})";  
  176.           
  177.         return startCheck(reg,idNr);  
  178.     }  
  179.       
  180.     /** 
  181.      * 網址驗證<br> 
  182.      * 符合類型:<br> 
  183.      *         http://www.test.com<br> 
  184.      *         http://163.com 
  185.      * */  
  186.     public boolean checkWebSite(String url)  
  187.     {  
  188.         //http://www.163.com  
  189.         String reg="^(http)\\://(\\w+\\.\\w+\\.\\w+|\\w+\\.\\w+)";  
  190.           
  191.         return startCheck(reg,url);  
  192.     }  
  193. }  

本文轉載自:http://der.iteye.com/blog/199489     在此感謝: 博主uidin的辛勤工作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM