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;
}
}