用于登录的 javax 验证(电子邮件或 phone)

javax validation for login(email or phone)

class SingIn {

    private String login;

    private String password;

    public SingIn(String login, String password) {
        this.login = login;
        this.password = password;
    }

    public String getLogin() {
        return login;
    }

    public String getPassword() {
        return password;
    }
}

登录 属性 可以是电子邮件(模式“.+@.+”)或 phone 号码(模式“\+\d+”)。

是否可以通过 javax 注释以某种方式验证登录 属性?

是的,通过用逻辑 OR:

组合 2 个 @Pattern 注释是可能的
@ConstraintComposition(OR)
@Pattern(regexp = ".+@.+")
@Pattern(regexp = "\+\d+")
@ReportAsSingleViolation
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
@Constraint(validatedBy = { })
public @interface EmailOrPhone {

另请参阅 Hibernate Validator 文档中的主题 Boolean composition of constraints