当前位置 : 主页 > 编程语言 > java >

表单数据合法性后端检测工具类

来源:互联网 收集:自由互联 发布时间:2021-06-28
VerifyTool.java import java.util.UUID;import java.util.regex.Pattern;import org.apache.commons.lang3.StringUtils;public class VerifyTool { private final static Pattern EMAILER = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\
VerifyTool.java
import java.util.UUID;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

public class VerifyTool {
    private final static Pattern EMAILER = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    private final static Pattern MOBILER = Pattern.compile(
            "^(((13[0-9])|(14[5,7])|(15([0-3]|[5-9]))|(17[0,3,6-8])|(18[0-9]))\\d{8})|(0\\d{2}-\\d{8})|(0\\d{3}-\\d{7,8})$");
    private final static Pattern LINKER = Pattern.compile("[a-zA-z]+://[^\\s]*");
    private final static Pattern DATER = Pattern.compile("^(\\d{4})-(0\\d{1}|1[0-2])-([012]\\d{1}|3[01])$");

    public final static int LENGTH_OF_UUID = UUID.randomUUID().toString().length();
    public final static int LENGTH_OF_UUID_SPLITTED = 5;

    /**
     * 检查邮箱格式合法性
     *
     * @param email
     * @return
     */
    public static boolean checkEmail(String email) {
        if (StringUtils.isBlank(email)) {
            return false;
        }
        return EMAILER.matcher(email).matches();
    }

    /**
     * 检查手机格式合法性
     *
     * @param mobile
     * @return
     */
    public static boolean checkMobile(String mobile) {
        if (StringUtils.isBlank(mobile)) {
            return false;
        }
        return MOBILER.matcher(mobile).matches();
    }

    /**
     * 检查链接格式合法性
     *
     * @param link
     * @return
     */
    public static boolean checkLink(String link) {
        if (StringUtils.isBlank(link)) {
            return false;
        }
        return LINKER.matcher(link).matches();
    }

    /**
     * 检查日期格式,格式:yyyy-MM-dd 注:这里没有判断闰年等的逻辑,仅判断基本的格式和数值范围
     *
     * @param dateStr
     * @return
     */
    public static boolean checkDate(String dateStr) {
        if (StringUtils.isBlank(dateStr)) {
            return false;
        }
        return DATER.matcher(dateStr).matches();
    }

    /**
     * 检查是否数字
     *
     * @param number
     * @return
     */
    public static boolean checkNumber(String number) {
        return StringUtils.isNotBlank(number) && StringUtils.isNumeric(number);
    }

    /**
     * 使用自定义正则表达式,检查数据格式
     *
     * @param toCheckValue 要检查的数据
     * @param regular      正则表达式
     * @return 如果满足条件,返回true;否则,返回false。
     */
    public static boolean checkByRegular(String toCheckValue, String regular) {
        if (StringUtils.isBlank(toCheckValue)) {
            return false;
        }
        Pattern myRegular = Pattern.compile(regular);
        return myRegular.matcher(toCheckValue).matches();
    }

    /**
     * 检查所有输入是否有空值
     *
     * @param inputList
     * @return true:有空值;false:无空值
     */
    public static boolean isInputBlank(String... inputList) {
        for (String input : inputList) {
            if (StringUtils.isBlank(input)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 检查输入的长度是否符合范围
     *
     * @param input
     * @param low
     * @param high
     * @param includeLow
     * @param includeHigh
     * @return
     */
    public static boolean checkInputLength(String input, int low, int high, boolean includeLow, boolean includeHigh) {
        if (StringUtils.isBlank(input)) {
            return false;
        }
        int length = StringUtils.length(input);
        if ((length > low && length < high) || (includeLow && length == low) || (includeHigh && length == high)) {
            return true;
        }
        return false;
    }

    /**
     * 检查输入的最大长度
     *
     * @param input
     * @param high
     * @param include
     * @return
     */
    public static boolean checkInputMaxLength(String input, int high, boolean include) {
        int length = StringUtils.length(input);
        if (length < high || (include && length == high)) {
            return true;
        }
        return false;
    }

    /**
     * 检查输入的最小长度
     *
     * @param input
     * @param low
     * @param include
     * @return
     */
    public static boolean checkInputMinLength(String input, int low, boolean include) {
        int length = StringUtils.length(input);
        if (length > low || (include && length == low)) {
            return true;
        }
        return false;
    }

    /**
     * 判断是否正确格式的UUID字符串
     *
     * @param uuidString
     * @return
     */
    public static boolean isValidUUIDString(String uuidString) {
        if (StringUtils.isBlank(uuidString) || LENGTH_OF_UUID != uuidString.length()) {
            return false;
        }
        String[] components = uuidString.split("-");
        if (components.length != LENGTH_OF_UUID_SPLITTED) {
            return false;
        }
        return true;
    }
}
网友评论