Java 使用注解检验手机号
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangbinlong/article/details/78840354
手机号校验注解类
package com.command.util; import static java.lang.annotation.ElementType.CONSTRUCTOR; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.Target; import javax.validation.Constraint; import javax.validation.Payload; import javax.validation.ReportAsSingleViolation; import javax.validation.constraints.Null; import javax.validation.constraints.Pattern; import org.hibernate.validator.constraints.CompositionType; import org.hibernate.validator.constraints.ConstraintComposition; import org.hibernate.validator.constraints.Length; /** * 验证手机号,空和正确的手机号都能验证通过<br/> * 正确的手机号由11位数字组成,第一位为1 * 第二位为 3、4、5、7、8 * */ @ConstraintComposition(CompositionType.OR) @Pattern(regexp = "1[3|4|5|7|8][0-9]\\d{8}") @Null @Length(min = 0, max = 0) @Documented @Constraint(validatedBy = {}) @Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER }) @Retention(RUNTIME) @ReportAsSingleViolation public @interface Phone { String message() default "手机号校验错误"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; }
使用样例:
package com.exchange.command.personal; import com.command.util.Phone; import lombok.Getter; import lombok.Setter; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotEmpty; @Getter @Setter public class PersonalReq{ @NotEmpty(message = "姓名不能为空") @Length(max = 30, min = 2,message = "姓名长度限制2~30字符") private String name; //添加手机号校验注解 @Phone private String mobile; }