Annotation Interface Mobile


@Target({METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER,TYPE_USE}) @Retention(RUNTIME) @Documented @Constraint(validatedBy=MobileValidator.class) public @interface Mobile
手机号码验证注解

用于验证字段是否为有效的手机号码

M39: 由组合 @Pattern 注解改为自定义校验器(MobileValidator)—— 原组合 @Pattern 下 required 属性无消费者(required=false 时空串仍失败、required=true 时 null 仍通过), 现 required 语义真正生效;regexp 可自定义(原 @AliasFor 为 Spring 语义,Bean Validation 不识别,已移除)

支持的手机号码格式: - 11位手机号码,如:13812345678 - 带国际区号的手机号码,如:+8613812345678 - 带国内区号的手机号码,如:013812345678

支持的目标元素: - 方法、字段、注解类型、构造函数、参数、类型使用

Author:
Kerbores(kerbores@riemann.tech)
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Class<?>[]
    验证组
    错误消息
    Class<? extends jakarta.validation.Payload>[]
    负载
    手机号码验证的正则表达式
    boolean
    是否必填
  • Element Details

    • required

      boolean required
      是否必填

      默认为true,表示该字段必须填写;required=false 时 null/空串通过

      Returns:
      是否必填
      Default:
      true
    • regexp

      String regexp
      手机号码验证的正则表达式

      默认为验证中国大陆手机号码的正则表达式(可选前缀 0/86/+86/17951,与 javadoc 语义对齐)

      Returns:
      手机号码验证的正则表达式
      Default:
      "^(\\+?86|0|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$"
    • message

      String message
      错误消息

      当手机号码格式错误时显示的错误消息(Bean Validation 直接读取本属性,无需 @AliasFor)

      Returns:
      错误消息
      Default:
      "\u624b\u673a\u53f7\u7801\u683c\u5f0f\u9519\u8bef"
    • groups

      Class<?>[] groups
      验证组

      用于分组验证,默认为空数组

      Returns:
      验证组数组
      Default:
      {}
    • payload

      Class<? extends jakarta.validation.Payload>[] payload
      负载

      用于传递额外的验证信息,默认为空数组

      Returns:
      负载数组
      Default:
      {}