用户注册信息合法性验证
前言
环境版本号
springboot 3.1.3
java 17
mybatis 3.0.0
验证用户输入用户名密码和邮箱的合法性
使用步骤
1.导入validation依赖
pom.xml代码如下:
<!--validation依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2.步骤
controller/UserController 代码如下:
@PostMapping("/register")
public Result register(
@Pattern(regexp = "^[A-Za-z0-9\\u4e00-\\u9fa5@#$%]{5,16}$", message = "用户名长度必须在5到16位之间,仅支持数字、中文、英文大小写字母以及@#$%") String username,
@Pattern(regexp = "^[A-Za-z0-9@#$%]{5,16}$", message = "密码长度必须在5到16位之间,仅支持数字、英文大小写字母以及@#$%") String password,
@Pattern(regexp = "^[A-Za-z0-9@.]+@(163\\.com|qq\\.com|gmail\\.com|hotmail\\.com)$", message = "邮箱格式不正确,仅支持@163.com,@qq.com,@gmail.com,@hotmail.com")String email) {
User existingUserByUsername = userService.findByUserName(username);
User existingUserByEmail = userService.findByEmail(email);
if (existingUserByUsername == null && existingUserByEmail == null) {
// 用户名和邮箱均未占用,开始注册
userService.register(username, password, email);
return Result.success();
} else {
// 构建错误信息
String errorMessage;
if (existingUserByUsername != null) {
errorMessage = "用户名已被占用";
} else {
errorMessage = "邮箱已被占用";
}
return Result.error(errorMessage);
}
}