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

我相信剩下的部分我必须使用 regExp 但不确定我需要什么正则表达式,这就是我想出的

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

我不确定表达式,因为我不擅长正则表达式,任何人都可以帮助我指出更正正则表达式

4

2 回答 2

2

你离得很近

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

不要.*在开始时使用(它会破坏长度检查)并将长度检查移动到最后。

于 2012-06-04T07:24:01.940 回答
1

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

^(?=.*\d)(?=.*[A-Z]).{6,8}$
于 2012-06-04T07:24:26.753 回答