package com.sonic.frog.utils;

import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;

/**
 * 格式验证工具
 */
public class RegexUtil {

    /**
     * TODO 待完善
     */
    private static List<String> ossStartPatternList = new ArrayList<>(Arrays.asList(
            "https://hhb.crushlevel.ai/"
    ));

    /**
     * 验证Email
     *
     * @param email email地址，格式：zhangsan@zuidaima.com，zhangsan@xxx.com.cn，xxx代表邮件服务商
     * @return 验证成功返回true，验证失败返回false
     */
    public static boolean checkEmail(String email) {
        if (StringUtils.isEmpty(email)){
            return false;
        }
        String regex = "[A-Za-z\\d]+([-_.][A-Za-z\\d]+)*@([A-Za-z\\d]+[-.])+[A-Za-z\\d]{2,4}";
        return Pattern.matches(regex, email);
    }


    /**
     * 判断字符串是否为URL
     * @param url 需要判断的String类型url
     * @return true:是URL；false:不是URL
     */
    public static boolean isHttpUrl(String url) {
        boolean isurl = false;
        String regex = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";//设置正则表达式
        isurl = Pattern.matches(regex.trim(),url);//判断是否匹配
        if (isurl) {
            isurl = true;
        }
        return isurl;
    }

    /**
     * 判断字符串是否为OSS域名开头的URL（校验URL格式）
     * @param url 需要判断的String类型url
     */
    public static boolean isOssStartUrl(String url) {
        if(StringUtils.isBlank(url)){
            return false;
        }
        boolean isOssUrl = false;
        if(isHttpUrl(url)){
            for (String ossStartPattern: ossStartPatternList) {
                if(url.startsWith(ossStartPattern)){
                    isOssUrl = true;
                    break;
                }
            }
        }
        return isOssUrl;
    }

}
