这里要用到hutool的工具包来判定哦
package com.yqs.utils.convenient;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
/**验证是否是正确的电话号码 也可判定是否为空 作用于String 类型 判定范围为中国电话号码
* @author 小乌龟
*/
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(validatedBy = {IsPhoneValidation.class})
public @interface IsPhone {
String message() default "手机号格式错误";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
package com.yqs.utils.convenient;
import cn.hutool.core.util.PhoneUtil;
import org.apache.commons.lang3.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.lang.annotation.Annotation;
/**
* @Description 手机号码验证 调用了hutool的工具包
* @Author 小乌龟
* @Date 2022/3/2 16:15
*/
public class IsPhoneValidation implements ConstraintValidator<IsPhone, String> {
@Override
public void initialize(IsPhone constraintAnnotation) {
ConstraintValidator.super.initialize(constraintAnnotation);
}
@Override
public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) {
if (StringUtils.isEmpty(value)) {
return false;
} else {
return PhoneUtil.isMobile(value);
}
}
}
还可以扩展哦
取值(ElementType)有:
1.CONSTRUCTOR:用于描述构造器
2.FIELD:用于描述域
3.LOCAL_VARIABLE:用于描述局部变量
4.METHOD:用于描述方法
5.PACKAGE:用于描述包
6.PARAMETER:用于描述参数
7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
使用:
@ApiModelProperty(value = "电话号码")
@IsPhone
private String phoneNumber;
结果: