package com.reyun.saas.common.util;


import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正则校验工具类
 */
public class PatternUtil {

    private static Pattern MOBILE_PATTERN= Pattern.compile("^((13[0-9])|(14[5,7,9])|(15([0-3]|[5-9]))|(166)|(17[0,1,3,5,6,7,8])|(18[0-9])|(19[8|9]))\\d{8}$");
    //\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14} 最大的邮箱
    private static Pattern EMAIL_PATTERN=Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");

    /**
     * 简单密码校验正则模板
     */
    private static final String SIMPLE_PASSWORD_TEMPLATE = "[A-Za-z0-9]{%s,%s}";

    /**
     * 判断是不是手机号
     * @param mobile 待定的手机号
     * @return 判断结果
     */
    public static boolean isMobileNo(String mobile){
        Matcher matcher = MOBILE_PATTERN.matcher(mobile);
        return matcher.matches();
    }

    /**
     * 判断是不是电子邮件
     * @param email 待判定的电子邮件地址
     * @return 判断结果
     */
    public static boolean isEmail(String email){
        Matcher matcher = EMAIL_PATTERN.matcher(email);
        return matcher.matches();
    }

    /**
     * 校验简单密码 格式为数字+字母 可以是纯数字或者纯字母
     * @param password 带校验密码
     * @return 判断结果
     */
    public static boolean checkSimplePassword(String password,int minLenth,int maxLength){
        String regular = String.format(SIMPLE_PASSWORD_TEMPLATE, minLenth, maxLength);
        Pattern passwordPattern = Pattern.compile(regular);
        Matcher matcher = passwordPattern.matcher(password);
        return matcher.matches();
    }



}
