gpt4 book ai didi

java - 在 Grails 中使用正则表达式进行密码验证

转载 作者:行者123 更新时间:2023-12-01 15:29:31 25 4
gpt4 key购买 nike

我正在使用以下正则表达式

'^(?!.*(.)\\{4})(?=.*[0-9 \\Q~!@#$%^&*()-_=+[]{}|;:,.<>/?]{2,})(?=.*[a-zA-Z]{2,}){8,50}$'

条件:

  • 密码必须包含至少 8 个字符且不超过 50 个字符。
  • 密码必须至少包含 2 个字母。
  • 密码不能包含超过 4 个相同字符。
  • 密码必须包含至少 5 个唯一字符。
  • 密码必须包含至少 2 个唯一数字(符号算作数字)。

当我尝试使用 Grails 运行应用程序时,它会抛出未封闭的字符类异常。我也对必须检查 5 个唯一字符条件的部分表示怀疑。帮我解决这个问题。

提前致谢。

最佳答案

不确定grails是否对此有任何特殊处理,但在java中,大概grails委托(delegate)你需要转义特殊字符,未封闭的字符类几乎可以肯定是由+和{}之间的[]引起的。

您最好使用一些字符类\p{punct} 来避免这些问题。

话虽如此,这在代码中会更容易、更清晰。定义各种字符集并在迭代密码时检查成员身份。这样做的另一个好处是您可以显式避免 SQL 注入(inject)的麻烦。

关于java - 在 Grails 中使用正则表达式进行密码验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com