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

时间:2017-08-03 12:02:55

标签: java bean-validation javax

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;
    }
}

登录属性可以是电子邮件(模式"。+ @。+")或电话号码(模式" \ + \ d +")。

是否有可能以某种方式使用javax注释来验证登录属性?

1 个答案:

答案 0 :(得分:1)

是的,可以通过使用逻辑@Pattern撰写2个OR注释来实现:

@ConstraintComposition(OR)
@Pattern(regexp = ".+@.+")
@Pattern(regexp = "\+\d+")
@ReportAsSingleViolation
@Target({ METHOD, FIELD })
@Retention(RUNTIME)
@Constraint(validatedBy = { })
public @interface EmailOrPhone {

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