package com.greenorange.promotion.utils;

import org.apache.commons.lang3.StringUtils;

import static com.greenorange.promotion.constant.RegexConstant.*;


public class RegexUtils {

    /**
     * 是否是无效手机格式
     *
     * @param phone 要校验的手机号
     * @return true:符合，false：不符合
     */
    public static boolean isPhoneInvalid(String phone) {
        return mismatch(phone, PHONE_REGEX);
    }

    /**
     * 是否是无效邮箱格式
     *
     * @param email 要校验的邮箱
     * @return true:符合，false：不符合
     */
    public static boolean isEmailInvalid(String email) {
        return mismatch(email, EMAIL_REGEX);
    }

    /**
     * 是否是无效18位身份证格式
     *
     * @param idCard 要校验的身份证号码
     * @return true:符合，false：不符合
     */
    public static boolean isIdCardInvalid(String idCard) {
        return mismatch(idCard, ID_CARD_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 (StringUtils.isBlank(str)) {
            return true;
        }
        return !str.matches(regex);
    }


    /**
     * 将除了点号以外的所有特殊字符替换都为下划线
     * @param input
     * @return
     */
    public static String encodeUrl(String input) { return input.replaceAll("[^\\w\\u4e00-\\u9fa5.]", "_"); }



}
