經常使用正則表達試
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);
}
}