- 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);
- }
- }
本文轉載自:http://der.iteye.com/blog/199489 在此感謝: 博主uidin的辛勤工作