import org.apache.commons.lang3.StringUtils;
/**
* @Description: <br/>
* 正则校验工具类
* <p>
* <br/>
* @Author: zhangqi
* @create 2020/11/5 15:01
*/
@SuppressWarnings("all")
public class ValidateUtils {
/**
* 整数
*/
public static final String IS_INTEGER = "^[-\\+]?[\\d]*$";
/**
* 正整数
*/
public static final String IS_POSITIVE_INTEGER = "^[\\d]*$";
/**
* 浮点数
*/
public static final String IS_DOUBLE = "^[-\\+]?[.\\d]*$";
/**
* 浮点数(两位小数)
*/
public static final String IS_DOUBLE2 = "^[\\d]*[.]*[\\d]{0,2}$";
/**
* 整数可以有点0
*/
public static final String IS_INTEGER2 = "^[\\d]*[.]*[0]*$";
/**
* 邮箱
*/
public static final String IS_EMAIL = "[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?";
/**
* 中文
*/
public static final String IS_CHINESE = "^[\u4e00-\u9fa5]*$";
/**
* 手机号
*/
public static final String IS_PHONE = "^1[3456789]\\d{9}$";
/**
* URL正则
*/
public static final String IS_URL = "^[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?";
/**
* IP
*/
public static final String IS_IP = "^(\\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])$";
/**
* 护照
*/
public static final String IS_PASSPORT = "^1[45][0-9]{7}|G[0-9]{8}|E[0-9]{8}|P[0-9]{7}|S[0-9]{7,8}|D[0-9]+$";
/**
* 身份证
*/
public static final String IS_ID_CARD = "^(\\d{6})(\\d{4})(\\d{2})(\\d{2})(\\d{3})([0-9]|X)$";
/**
* 数字 字母 汉字
*/
public static final String IS_LETTER_DIGIT_OR_CHINESE = "^[·a-z0-9A-Z\u4e00-\u9fa5]+$";
/**
* 校验密码(数字字母 6 ~ 32位)
*/
public static final String IS_LEGAL_PASSWORD = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,32}$";
/**
* 日期格式 yyyy-MM-dd
*/
public static final String IS_DATE =
"^((?!0000)[0-9]{4}-((0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-8])|(0[13-9]|1[0-2])-(29|30)|(0[13578]|1[02])-31)|([0-9]{2}(0[48]|[2468][048]|[13579][26])|(0[48]|[2468][048]|[13579][26])00)-02-29)$";
/**
* 日期格式时间 yyyy-MM-dd HH:mm:ss
*/
private static final String IS_DATE_TIME =
"^[1-9]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\\s+(20|21|22|23|[0-1]\\d):[0-5]\\d:[0-5]\\d$";
/**
* 多订单号正则,允许字线数字英文逗号 *
*/
public static final String ORDER_NO_REG = "^[a-zA-Z0-9,]+$";
/**
* 图片后缀校验
*/
public static final String IMAGE_SUFFIX = ".+(.JPEG|.jpeg|.JPG|.jpg|.GIF|.gif|.BMP|.bmp|.PNG|.png)$";
/**
* 判断是否是正数
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isInteger(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_INTEGER);
}
/**
* 判断是否是正正数
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isPositiveInteger(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_POSITIVE_INTEGER);
}
/**
* 判断是否是浮点数
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isDouble(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_DOUBLE);
}
/**
* 判断是否是浮点数(两位小数)
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isDouble2(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_DOUBLE2);
}
/**
* 判断是否是正数(可以有 点0)
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isInteger2(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_INTEGER2);
}
/**
* 判断是否是邮箱
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isEmail(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_EMAIL);
}
/**
* 判断是否是中文
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isChinese(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_CHINESE);
}
/**
* 校验密码强度
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isLegalPassword(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_LEGAL_PASSWORD);
}
/**
* 判断是否是手机号
*
* @param phone 判断的字符串
* @return 结果
*/
public static boolean isPhone(String phone) {
return !StringUtils.isBlank(phone) && phone.matches(IS_PHONE);
}
/**
* 判断是否是Url
*
* @param phone 判断的字符串
* @return 结果
*/
public static boolean isUrl(String phone) {
return !StringUtils.isBlank(phone) && phone.matches(IS_URL);
}
/**
* 判断是否是IP
*
* @param phone 判断的字符串
* @return 结果
*/
public static boolean isIp(String phone) {
return !StringUtils.isBlank(phone) && phone.matches(IS_IP);
}
/**
* 判断是否是护照
*
* @param phone 判断的字符串
* @return 结果
*/
public static boolean isPassport(String phone) {
return !StringUtils.isBlank(phone) && phone.matches(IS_PASSPORT);
}
/**
* 判断是否是身份证
*
* @param idCard 判断的字符串
* @return 结果
*/
public static boolean isIdCard(String idCard) {
return !StringUtils.isBlank(idCard) && idCard.matches(IS_ID_CARD);
}
/**
* 判断是否是数字 字母 汉字
*
* @param phone 判断的字符串
* @return 结果
*/
public static boolean isLetterDigitOrChinese(String phone) {
return !StringUtils.isBlank(phone) && phone.matches(IS_LETTER_DIGIT_OR_CHINESE);
}
/**
* 判断是否是日期格式
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isDate(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_DATE);
}
/**
* 判断是否是日期时间格式
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isDateTime(String str) {
return !StringUtils.isBlank(str) && str.matches(IS_DATE_TIME);
}
/**
* 判断是否为图片后缀
*
* @param str 判断的字符串
* @return 结果
*/
public static boolean isImageSuffix(String str) {
return StringUtils.isNotBlank(str) && str.matches(IMAGE_SUFFIX);
}
}
正则校验工具类
最新推荐文章于 2024-04-17 11:07:38 发布