com.soento.core.util.CheckUtil Maven / Gradle / Ivy
package com.soento.core.util;
import com.soento.core.consts.Constants;
import com.soento.core.enums.DateFormat;
import com.soento.core.enums.RegEx;
import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
/**
* 校验工具类
*
* @author soento
*/
public final class CheckUtil {
private CheckUtil() {
}
/**
* 判断英文字母 、数字和下划线
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isGeneral(String chkStr) {
return RegEx.GENERAL.pattern().matcher(chkStr).matches();
}
/**
* 判断数字
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isNumbers(String chkStr) {
return RegEx.NUMBERS.pattern().matcher(chkStr).matches();
}
/**
* 判断汉字
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isChinese(String chkStr) {
return RegEx.CHINESE.pattern().matcher(chkStr).matches();
}
/**
* 判断IPV4
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isIpv4(String chkStr) {
return RegEx.IPV4.pattern().matcher(chkStr).matches();
}
/**
* 判断邮箱
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isEmail(String chkStr) {
return RegEx.EMAIL.pattern().matcher(chkStr).matches();
}
/**
* 判断身份证号码
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isCitizenId(String chkStr) {
return RegEx.CITIZEN_ID.pattern().matcher(chkStr).matches();
}
/**
* 判断手机号
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isMobile(String chkStr) {
return RegEx.MOBILE.pattern().matcher(chkStr).matches();
}
/**
* 判断邮编
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isZipCode(String chkStr) {
return RegEx.ZIP_CODE.pattern().matcher(chkStr).matches();
}
/**
* 判断生日
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isBirthday(String chkStr) {
return RegEx.BIRTHDAY.pattern().matcher(chkStr).matches();
}
/**
* 判断URL
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isUrl(String chkStr) {
return RegEx.URL.pattern().matcher(chkStr).matches();
}
/**
* 判断中文字、英文字母、数字和下划线
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isGeneralWithChinese(String chkStr) {
return RegEx.GENERAL_WITH_CHINESE.pattern().matcher(chkStr).matches();
}
/**
* 判断UUID
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isUuid(String chkStr) {
return RegEx.UUID.pattern().matcher(chkStr).matches();
}
/**
* 判断不带横线的UUID
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isUuidSimple(String chkStr) {
return RegEx.UUID_SIMPLE.pattern().matcher(chkStr).matches();
}
/**
* 判断中国车牌号码
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isPlateNumber(String chkStr) {
return RegEx.PLATE_NUMBER.pattern().matcher(chkStr).matches();
}
/**
* 判断MAC地址
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isMacAddress(String chkStr) {
return RegEx.MAC_ADDRESS.pattern().matcher(chkStr).matches();
}
/**
* 判断半角英数
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isHalfAlphaDigit(String chkStr) {
return RegEx.HALF_ALPHA_DIGIT.pattern().matcher(chkStr).matches();
}
/**
* 判断半角英文
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isHalfAlpha(String chkStr) {
return RegEx.HALF_ALPHA.pattern().matcher(chkStr).matches();
}
/**
* 判断半角数字
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isHalfDigit(String chkStr) {
return RegEx.HALF_DIGIT.pattern().matcher(chkStr).matches();
}
/**
* 判断数值
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isDecimal(String chkStr) {
return RegEx.DECIMAL.pattern().matcher(chkStr).matches();
}
/**
* 判断字符串是否为半角
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isHalf(String chkStr) {
if (chkStr.length() == StringUtil.bytes(chkStr).length) {
return true;
} else {
return false;
}
}
/**
* 判断字符串是否为半角数字
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isNumber(String chkStr) {
return RegEx.HALF_DIGIT.pattern().matcher(chkStr).matches();
}
/**
* 判断字符串是否为整数
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isLong(String chkStr) {
if (chkStr.startsWith(Constants.PLUS) || chkStr.startsWith(Constants.MINUS)) {
chkStr = chkStr.substring(1);
}
final String str0 = "0";
if (chkStr.length() > 1 && str0.equals(chkStr.substring(0, 1))) {
return false;
} else {
return RegEx.HALF_DIGIT.pattern().matcher(chkStr).matches();
}
}
/**
* 判断字符串是否为有效数值
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isNumberValue(String chkStr) {
if (chkStr.startsWith(Constants.PLUS) || chkStr.startsWith(Constants.MINUS)) {
chkStr = chkStr.substring(1);
}
if (chkStr.contains(Constants.DOT)) {
String[] chkStrs = chkStr.split(Constants.REGEX_DOT);
if (chkStrs.length > 1) {
return false;
} else {
return isNumber(chkStrs[0]) && isNumber(chkStrs[1]);
}
} else {
return isLong(chkStr);
}
}
/**
* 判断字符串是否为日期格式类型的字符串
*
* @param chkStr 校验字符串
* @param format 日期格式
* @return 校验结果 true:是 false:否
*/
public static boolean isDate(String chkStr, DateFormat format) {
try {
SimpleDateFormat sdf = format.instance();
sdf.setLenient(false);
sdf.parse(chkStr);
return true;
} catch (Exception e) {
return false;
}
}
/**
* 判断字符串是否为有效的月份
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isMonth(String chkStr) {
if (StringUtils.isBlank(chkStr) || !isNumber(chkStr)) {
return false;
}
final int num12 = 12;
int m = Integer.parseInt(chkStr);
if (m < 1 || m > num12) {
return false;
} else {
return true;
}
}
/**
* 判断字符串是否为有效的日期天数
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isDay(String chkStr) {
if (StringUtils.isBlank(chkStr) || !isNumber(chkStr)) {
return false;
}
int m = Integer.parseInt(chkStr);
final int num31 = 31;
if (m < 1 || m > num31) {
return false;
} else {
return true;
}
}
/**
* 判断字符串是不是有效的日期小时数
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isHour(String chkStr) {
if (StringUtils.isBlank(chkStr) || !isNumber(chkStr)) {
return false;
}
int m = Integer.parseInt(chkStr);
final int num24 = 24;
if (m < 0 || m > num24) {
return false;
} else {
return true;
}
}
/**
* 判断字符串是不是有效的日期分钟数
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isMinute(String chkStr) {
if (StringUtils.isBlank(chkStr) || !isNumber(chkStr)) {
return false;
}
int m = Integer.parseInt(chkStr);
final int num60 = 60;
if (m < 0 || m > num60) {
return false;
} else {
return true;
}
}
/**
* 判断字符串是不是有效的日期秒数
*
* @param chkStr 校验字符串
* @return 校验结果 true:是 false:否
*/
public static boolean isSecond(String chkStr) {
if (StringUtils.isBlank(chkStr) || !isNumber(chkStr)) {
return false;
}
int m = Integer.parseInt(chkStr);
final int num60 = 60;
if (m < 0 || m > num60) {
return false;
} else {
return true;
}
}
}