【问题标题】:Spring Bean Validation and validating a bean attribute with Regular ExpressionSpring Bean Validation 和使用正则表达式验证 bean 属性
【发布时间】:2021-02-08 00:45:31
【问题描述】:

我有一个关于 Spring Boot、正则表达式和对 REST API 调用主体中传递的属性执行验证的问题。

我想验证一个至少包含 1 个大写字母、1 个数字和 13 个字符的密码字段。

其他验证正在运行,但正则表达式在 bean 上不起作用。

我已经在编辑器中成功尝试了以下内容。

https://regex101.com/r/lfgL85/1

^(?=.*[0-9])(?=.*[A-Z])

但是,当我使用以下注释在 Java bean 上设置模式时,它似乎在单元测试中不起作用。有什么想法吗?

https://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/javax/validation/constraints/package-summary.html

public class User {

    @NotNull
    private String name;

    @Size(min=13)
    @Pattern(regexp="^(?=.*[0-9])(?=.*[A-Z])$", message = "Password must contain at least 1 number and uppercase character")
    private String password;

    ...
}   

【问题讨论】:

    标签: java spring-boot validation


    【解决方案1】:

    尝试使用@NotNull 注释password 字段。它说“null 元素被认为是有效的。”在您共享的文档中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 2012-01-31
      相关资源
      最近更新 更多