package util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
/**
* 验证工具类
*
* @author admin
*
*/
public class CheckUtils {
/**
* 手机号码正则表达式
*/
private static final String PHONE_NUMBER_REG = "^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\\d{8}$";
// String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$";
public static boolean isPhone(String str) {
return Regular(str, PHONE_NUMBER_REG);
}
/**
* 固话正则表达式
*/
private static final String FIX_PHONE_REG = "^(0\\d{2}-\\d{8}(-\\d{1,4})?)|(0\\d{3}-\\d{7,8}(-\\d{1,4})?)$";
public static boolean checkTelephone(String str) {
return Regular(str, FIX_PHONE_REG);
}
/**
* 身份证正则表达式
*/
public static final String IDCARD = "((11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65)[0-9]{4})"
+ "(([1|2][0-9]{3}[0|1][0-9][0-3][0-9][0-9]{3}" + "[Xx0-9])|([0-9]{2}[0|1][0-9][0-3][0-9][0-9]{3}))";
/**
* 判断字段是否为身份证 符合返回ture
*
* @param str
* @return boolean
*/
public static boolean isIdCard(String str) {
if (StringUtils.isBlank(str))
return false;
if (str.trim().length() == 15 || str.trim().length() == 18) {
return Regular(str, IDCARD);
} else {
return false;
}
}
/**
* 判断字段是否为年龄 符合返回ture
*
* @param str
* @return boolean
*/
public static final String AGE = "^(?:[1-9][0-9]?|1[01][0-9]|120)$";
public static boolean isAge(String str) {
return Regular(str, AGE);
}
/**
* 判断字段是否为Email 符合返回ture
*
* @param str
* @return boolean
*/
public static final String EMAIL = "\\w+(\\.\\w+)*@\\w+(\\.\\w+)+";
public static boolean isEmail(String str) {
return Regular(str, EMAIL);
}
private static boolean Regular(String str, String pattern) {
if (null == str || str.trim().length() <= 0)
return false;
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
return m.matches();
}
public static boolean sqlValidate(String str) {
str = str.toLowerCase();// 统一转为小写
String badStr = "'|and|exec|execute|insert|select|delete|update|count|drop|*|%|chr|mid|master|truncate|"
+ "char|declare|sitename|net user|xp_cmdshell|;|or|-|+|,|like'|and|exec|execute|insert|create|drop|"
+ "table|from|grant|use|group_concat|column_name|"
+ "information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|*|"
+ "chr|mid|master|truncate|char|declare|or|;|-|--|+|,|like|//|/|%|#";// 过滤掉的sql关键字,可以手动添加
String[] badStrs = badStr.split("\\|");
for (int i = 0; i < badStrs.length; i++) {
if (str.indexOf(badStrs[i]) >= 0) {
return true;
}
}
return false;
}
public static String getUrl(String text) {
Pattern pattern = Pattern.compile(
"((http[s]{0,1}|ftp)://[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)|((www.)|[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)");
Matcher matcher = pattern.matcher(text);
StringBuffer buffer = new StringBuffer();
while (matcher.find()) {
buffer.append(matcher.group());
}
return buffer.toString();
}
public static boolean isUrl(String content) {
Pattern pattern2 = Pattern.compile("[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\\.?");
Matcher matcher2 = pattern2.matcher(content);
return matcher2.matches();
}
public static boolean CheckUrl(String txtUrl) {
if (txtUrl.length() > 0 && ("http://".equalsIgnoreCase(txtUrl.substring(0, 7))
|| "https://".equalsIgnoreCase(txtUrl.substring(0, 8)))) {
return true;
} else {
return false;
}
}
}
正则匹配工具类
最新推荐文章于 2025-05-11 09:30:00 发布