From 788e9ca2397e591288368935924bb6dc39c4bb1e Mon Sep 17 00:00:00 2001 From: lifenlong Date: Sat, 26 Jun 2021 11:04:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=B5=E8=AF=9D=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/common/validation/Mobile.java | 33 +++++++++++++++++ .../validation/impl/MobileValidator.java | 35 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 framework/src/main/java/cn/lili/common/validation/Mobile.java create mode 100644 framework/src/main/java/cn/lili/common/validation/impl/MobileValidator.java diff --git a/framework/src/main/java/cn/lili/common/validation/Mobile.java b/framework/src/main/java/cn/lili/common/validation/Mobile.java new file mode 100644 index 00000000..578888bc --- /dev/null +++ b/framework/src/main/java/cn/lili/common/validation/Mobile.java @@ -0,0 +1,33 @@ +package cn.lili.common.validation; + +import cn.lili.common.validation.impl.MobileValidator; +import cn.lili.common.validation.impl.PhoneValidator; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +/** + * 电话号码校验注解 + * + * @author Bulbasaur + */ +@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER}) +@Retention(RUNTIME) +@Documented +@Constraint(validatedBy = {MobileValidator.class}) +public @interface Mobile { + + String regexp() default ""; + + String message() default "电话号码格式不正确"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/framework/src/main/java/cn/lili/common/validation/impl/MobileValidator.java b/framework/src/main/java/cn/lili/common/validation/impl/MobileValidator.java new file mode 100644 index 00000000..2b21b32c --- /dev/null +++ b/framework/src/main/java/cn/lili/common/validation/impl/MobileValidator.java @@ -0,0 +1,35 @@ +package cn.lili.common.validation.impl; + +import cn.lili.common.validation.Mobile; +import cn.lili.common.validation.Phone; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +public class MobileValidator implements ConstraintValidator { + + @Override + public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { + Pattern p1 = null,p2 = null; + Matcher m = null; + boolean b = false; + p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的 + p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$"); // 验证没有区号的 + if(value.length() >9) + { m = p1.matcher(value); + b = m.matches(); + }else{ + m = p2.matcher(value); + b = m.matches(); + } + return b; + } + + @Override + public void initialize(Mobile constraintAnnotation) { + + } +}