package com.ruoyi.asset.utils;

import cn.hutool.core.util.StrUtil;

import static com.ruoyi.asset.utils.RegexPatterns.*;

/**
 * @author 林武泰
 * 正则校验工具类
 */
public class RegexUtils {
    /**
     * 是否非负浮点数
     * @param number 要检验的浮点数
     * @return true：符合，false：不符合
     */
    public static boolean isNegativeFloat(String number) {
        return mismatch(number, NEGATIVE_FLOAT);
    }
    /**
     * 是否是无效手机格式
     * @param phone 要校验的手机号
     * @return true:符合，false：不符合
     */
    public static boolean isPhoneInvalid(String phone){
        return mismatch(phone, PHONE_REGEX);
    }
    /**
     * 是否是无效用户名
     * @param username 要校验的用户名
     * @return true：符合，false：不符合
     */
    public static boolean isUsernameInvalid(String username) {
        return mismatch(username, RegexPatterns.USERNAME_REGEX);
    }
    /**
     * 是否是无效邮箱格式
     * @param email 要校验的邮箱
     * @return true:符合，false：不符合
     */
    public static boolean isEmailInvalid(String email){
        return mismatch(email, EMAIL_REGEX);
    }

    /**
     * 是否是无效验证码格式
     * @param code 要校验的验证码
     * @return true:符合，false：不符合
     */
    public static boolean isCodeInvalid(String code){
        return mismatch(code, VERIFY_CODE_REGEX);
    }

    // 校验是否不符合正则格式
    private static boolean mismatch(String str, String regex){
        if (StrUtil.isBlank(str)) {
            return true;
        }
        return !str.matches(regex);
    }
}
