能否演示@PhoneNumber例子
当然可以。让我给你演示一个@PhoneNumber(电话号码验证注解)的例子。
假设我们在Java Spring Boot框架中实现:
- 定义注解
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PhoneNumberValidator.class)
public @interface PhoneNumber {
String message() default "手机号格式不正确";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
- 实现验证逻辑
public class PhoneNumberValidator implements ConstraintValidator<PhoneNumber, String> {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null || value.isEmpty()) {
return false;
}
// 简易手机号正则:1开头的11位数字
return value.matches("^1[3-9]\d{9}$");
}
}
- 使用注解
public class User {
@PhoneNumber
private String phone;
}
这样在用户提交手机号时,系统会自动检查是否符合规则(比如13800138000这样的格式)。如果不符合,就会返回"手机号格式不正确"的错误提示。