我正在使用以下正则表达式
'^(?!.*(.)\\{4})(?=.*[0-9 \\Q~!@#$%^&*()-_=+[]{}|;:,.<>/?]{2,})(?=.*[a-zA-Z]{2,}){8,50}$'
条件:
当我尝试使用Grails运行应用程序时,它会抛出未关闭的字符类异常。我也怀疑必须检查5个唯一字符条件的部分。帮我解决这个问题。
提前致谢。
答案 0 :(得分:1)
不确定grails是否对此有任何特殊处理但是在java中,presumbaly grails委托给你需要转义特殊字符,unclosed字符类几乎肯定是由+和{}之间的[]引起的。
你最好使用一些字符类\ p {punct}来避免这些问题。
尽管如此,这在代码中会更容易和更清晰。在迭代密码时定义各种字符集并检查成员资格。这有一个额外的好处,你可以明确地避免SQL注入恶意。