java - Spring Bean Validation 和使用正则表达式验证 bean 属性
问题描述
我有一个关于 Spring Boot、正则表达式和对 REST API 调用主体中传递的属性执行验证的问题。
我想验证一个至少包含 1 个大写字母、1 个数字和 13 个字符的密码字段。
其他验证正在工作,但正则表达式不适用于 bean。
我已经在编辑器中成功尝试了以下内容。
https://regex101.com/r/lfgL85/1
^(?=.*[0-9])(?=.*[A-Z])
但是,当我使用以下注释在 Java bean 上设置模式时,它似乎在单元测试中不起作用。有什么想法吗?
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;
...
}
解决方案
尝试password
使用@NotNull
. 它说“null
元素被认为是有效的”。在您共享的文档中。
推荐阅读
- facebook - 突然的 Facebook API 速率限制错误(试图获取共享计数)
- r - R 错误:向量的长度错误,使用 Geosphere 包时应为 2
- firebase - Flutter / Firestore - 如何访问 Firebase 上的嵌套元素?
- kotlin - 是否有像 map 这样的集合功能将列表中的每个项目变成两个项目?
- c# - 用 12 个星号标记借记卡号,每组 4 个后跟 Automapper 中的空格
- ruby-on-rails - 非确定性 NameError:ActiveRecord 模型上的未初始化常量
- unity3d - unity vr 构建错误
- python - python使用@方法替换一个值
- flutter - 使用 data_usage 插件时出错:未处理的异常:PlatformException(PERMISSION_NOT_GRANTED,null,null,null)
- security - 在应用程序中存储主机和端口数据是否会使服务器易受攻击?