You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
two_project/src/main/java/com/mathgenerator/util/ValidationUtils.java

81 lines
2.8 KiB

package com.mathgenerator.util;
import java.util.regex.Pattern;
/**
* 一个包含静态校验方法的工具类。
* <p>
* 该类用于集中管理项目中所有的数据格式验证逻辑,例如用户名、密码和邮箱的格式校验。
* 通过提供统一的静态方法,确保了验证规则的一致性和代码的复用性。
* 此类不可被实例化。
*/
public final class ValidationUtils {
// 密码策略: 6-10位, 必须包含大小写字母和数字
private static final Pattern PASSWORD_PATTERN =
Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{6,10}$");
// 用户名策略: 不包含任何空白字符
private static final Pattern USERNAME_NO_WHITESPACE_PATTERN =
Pattern.compile("^\\S+$");
// 邮箱策略:使用标准的正则表达式进行格式校验
private static final Pattern EMAIL_PATTERN =
Pattern.compile("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$");
/**
* 私有构造函数,防止这个工具类被实例化。
*/
private ValidationUtils() {}
/**
* 验证用户名格式是否有效。
* <p>
* 当前规则为:
* <ul>
* <li>用户名不能为空。</li>
* <li>用户名不允许包含任何空格或空白字符。</li>
* </ul>
*
* @param username 待验证的用户名字符串。
* @return 如果用户名格式有效,返回 {@code true};否则返回 {@code false}。
*/
public static boolean isUsernameValid(String username) {
if (username == null || username.isEmpty()) {
return false;
}
return USERNAME_NO_WHITESPACE_PATTERN.matcher(username).matches();
}
/**
* 验证密码是否符合预设的复杂度要求。
* <p>
* 当前规则为:
* <ul>
* <li>密码长度必须在 6 到 10 位之间。</li>
* <li>密码必须同时包含大写字母、小写字母和数字。</li>
* </ul>
*
* @param password 待验证的密码字符串。
* @return 如果密码符合复杂度要求,返回 {@code true};否则返回 {@code false}。
*/
public static boolean isPasswordValid(String password) {
return password != null && PASSWORD_PATTERN.matcher(password).matches();
}
/**
* 验证邮箱地址格式是否有效。
* <p>
* 使用一个标准的正则表达式来检查邮箱地址是否符合常规格式 (例如, "user@example.com")。
*
* @param email 待验证的邮箱地址字符串。
* @return 如果邮箱格式基本正确,返回 {@code true};否则返回 {@code false}。
*/
public static boolean isEmailValid(String email) {
if (email == null || email.isEmpty()) {
return false;
}
return EMAIL_PATTERN.matcher(email).matches();
}
}