spring boot 校验手机号
时间: 2023-09-12 22:06:07 浏览: 209
使用 Spring Boot 中的校验框架可以方便地对手机号进行校验。具体实现步骤如下:
1. 引入依赖
在 `pom.xml` 文件中引入 `spring-boot-starter-validation` 依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
```
2. 编写手机号校验注解
在需要校验手机号的参数上加上自定义的注解 `@Phone`,如下所示:
```java
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
@Phone(message = "手机号格式不正确")
private String phone;
// getter 和 setter 方法
}
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneValidator.class)
@Documented
public @interface Phone {
String message() default "手机号格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
```
其中,`@Phone` 注解的实现需要指定校验逻辑,即 `PhoneValidator` 类的实现。
3. 实现手机号校验逻辑
在 `PhoneValidator` 类中实现手机号的校验逻辑,如下所示:
```java
public class PhoneValidator implements ConstraintValidator<Phone, String> {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true;
}
String regx = "^1[3|4|5|7|8][0-9]{9}$";
return Pattern.matches(regx, value);
}
}
```
在校验手机号时,如果手机号为 `null` 则直接返回 `true`,否则使用正则表达式匹配手机号格式。如果匹配成功,则返回 `true`,否则返回 `false`。
4. 进行手机号校验
在需要校验手机号的方法中,使用 `@Valid` 注解标注需要校验的对象,如下所示:
```java
@RestController
public class UserController {
@PostMapping("/users")
public User createUser(@Valid @RequestBody User user) {
return user;
}
}
```
在请求时,如果手机号格式不正确,会返回 `400 Bad Request`,并提示手机号格式不正确。如果手机号格式正确,则正常创建用户。
阅读全文