验证工具类

ValidateUtils

package com.test.utils;

import java.util.HashMap;
import java.util.Map;
import java.util.regex.Pattern;

import com.alibaba.druid.util.StringUtils;
import com.gpyh.core.entity.Region;

/**
 * 校验工具类,如登录名、手机号.
 */
public class ValidateUtils {

    /** 内部使用的返回标识,flag=true、false */
    public static final String FLAG = "flag";

    /** 内部使用的返回提示信息 */
    public static final String MSG = "msg";


    /**
     * 
     * 校验登录名,只能是英文字母,或者英文字母数字组合.
     *
     * @param loginName
     *            登录名
     * @return 是否合规
     */
    public static boolean checkLoginName(String loginName) {
        return !loginName.matches("[0-9]+") && loginName.matches("^[\\da-zA-Z]*$");
    }
    
    /**
     * 
     * 校验登录名,只能是英文字母,或者英文字母数字组合.
     *
     * @param loginName
     *            登录名
     * @return 是否合规
     */
    public static boolean checkIsMumber(String loginName) {
        return loginName.matches("[0-9]+");
    }

    /**
     * 校验手机号.
     *
     * @param mobile
     *            手机号
     * @return 是否合规
     */
    public static boolean checkMobile(String mobile) {
        return Pattern.compile("^[1][0-9]{10}$").matcher(mobile).matches();
    }

    /**
     * 校验固定电话.
     *
     * @param phone
     *            电话号码
     * @return 是否合规
     */
    public static boolean checkPhone(String phone) {
        return Pattern.compile("^(([0]+[0-9]{2,3}-)?(0[0-9]{2,3})-)?([0-9]{7,8})(-([0-9]{1,}))?$").matcher(phone)
                .matches();
    }

    /**
     * 
     * 校验邮箱.
     *
     * @param email
     *            邮箱地址
     * @return 是否合规
     */
    public static boolean checkEmail(String email) {
        return Pattern.compile("^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")
                .matcher(email).matches();
    }

    /**
     * 校验邮编.
     *
     * @param postCode
     *            邮编
     * @return 是否合规
     */
    public static boolean checkPostcode(String postCode) {
        return Pattern.compile("^[1-9][0-9]{5}$").matcher(postCode).matches();
    }

    /**
     * 校验省、市、区县是否是正确(即:江苏省->苏州市->工业园区) .
     *
     * @param province
     *            省
     * @param city
     *            市
     * @param county
     *            区县
     * @return 是否合规
     */
    public static boolean checkRegion(Region province, Region city, Region county) {
        return county.getParentId().equals(city.getId()) && city.getParentId().equals(province.getId());
    }

    /**
     * 检验密码是否为简单密码.
     * 
     * @param password
     *            密码
     * @return 是否合规
     */
    public static boolean checkPasswordSimple(String password) {
        // 密码不能为空
        if (StringUtils.isEmpty(password)) {
            return true;
        }
        // 密码长度只能在6-20位字符之间
        if (password.length() < 6 || password.length() > 20) {
            return true;
        }
        // 密码必须同时包含字母和数字
        Pattern patternNumber = Pattern.compile(".*\\d+.*");// 校验包含数字
        Pattern patternLetter = Pattern.compile(".*[a-zA-Z]+.*");// 校验包含字母
        if (!patternNumber.matcher(password).matches() || !patternLetter.matcher(password).matches()) {
            return true;
        }
        return false;
    }

    /**
     * 修改密码是校验密码是否符合要求.
     * 
     * @param password
     *            密码
     * @return 是否合规
     */
    public static Map<String, Object> modifyPasswordCheck(String password) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        // 密码不能为空
        if (StringUtils.isEmpty(password)) {
            resultMap.put(FLAG, false);
            resultMap.put(MSG, "请输入密码");
        }
        // 密码长度只能在6-20位字符之间
        if (password.length() < 6 || password.length() > 20) {
            resultMap.put(FLAG, false);
            resultMap.put(MSG, "密码长度只能在6-20位字符之间");
        }
        // 密码必须同时包含字母和数字
        Pattern patternNumber = Pattern.compile(".*\\d+.*");// 校验包含数字
        Pattern patternLetter = Pattern.compile(".*[a-zA-Z]+.*");// 校验包含字母
        if (!patternNumber.matcher(password).matches() || !patternLetter.matcher(password).matches()) {
            resultMap.put(FLAG, false);
            resultMap.put(MSG, "密码必须由字母和数字组成-20位字符之间");
        }
        return resultMap;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值