All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy