package com.v.common.annotations;
import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;
/**
* @Description: 验证手机,只要验证手机号码为11位,且以1开头
* @Author:
* @Date: 2022/5/18 11:13
**/
@Constraint(validatedBy = {PhoneNumberConstraint.class})
@Documented
@Target({ElementType.FIELD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PhoneNumberValid {
String message() default "手机号不合法";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
package com.v.common.annotations;
import com.v.common.utils.StringUtils;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
/**
* @Description: 校验手机号码
* @Author:
* @Date: 2022/5/18 11:19
**/
public class PhoneNumberConstraint implements ConstraintValidator<PhoneNumberValid, String> {
@Override
public void initialize(PhoneNumberValid constraintAnnotation) {
}
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
return sizeIsTrue(s);
}
/**
* 只要验证手机号码为11位,且以1开头
* @param s
* @return
*/
private Boolean sizeIsTrue(String s) {
if (StringUtils.isNotBlank(s)) {
if (s.length() == 11 && s.matches("^1[0-9]{10}$")) {
return true;
} else {
return false;
}
} else {
return true;
}
}
}