使用Hibernate Bean Validation进行密码验证

3

我正在尝试验证用户输入的密码是否符合以下规则。

  1. 最少6个字符,最多8个字符。
  2. 至少1个数字。
  3. 至少1个大写字母。
  4. 不允许使用特殊字符。

以下是我在bean类中实现的内容:

@NotNull(message = "{register.pwd.invalid}")
    @Size(min = 6, max = 8, message = "{register.pwd.invalid}")
    public String getPwd()
    {
        return pwd;
    }

我相信对于剩下的部分,我需要使用正则表达式,但不确定需要哪种正则表达式,以下是我想到的:

^.*(?=.{6,8})(?=.*\d)(?=.*[A-Z]).*$

我对表达方式不确定,因为我不擅长正则表达式,有人能帮我指出修正正则表达式吗?

2个回答

2

你已经很接近了

^(?=.*\d)(?=.*[A-Z]).{6,8}$

不要在开头使用.*(这会破坏长度检查),将长度检查移到结尾。


1

去掉第一个.*并锚定字符限制,例如:

^(?=.*\d)(?=.*[A-Z]).{6,8}$

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接