实际上,
内部使用regexp。您可以根据该正则表达式轻松定义自己的约束,并根据需要进行修改(请注意
+的结尾
DOMAIN):
@Target({ElementType.FIELD, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = {})@Pattern(regexp = Constants.PATTERN, flags = Pattern.Flag.CASE_INSENSITIVE)public @interface EmailWithTld { String message() default "Wrong email"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { };}interface Constants { static final String ATOM = "[a-z0-9!#$%&'*+/=?^_`{|}~-]"; static final String DOMAIN = "(" + ATOM + "+(\." + ATOM + "+)+"; static final String IP_DOMAIN = "\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\]"; static final String PATTERN = "^" + ATOM + "+(\." + ATOM + "+)*@" + DOMAIN + "|" + IP_DOMAIN + ")$";}


