[英]Using a Regular expression for password validation
我正在使用以下正则表达式编写我的Java代码。
^.*(?=.{6,20})(?=.*[a-z].*[a-z])(?=.*[A-Z])(?=.*[0-9]).*$
当我尝试在xml中使用与
^.\*(\?=.{6,20})(\?=.\*[a-z].\*[a-z])(\?=.\*[A-Z])(\?=.\*[0-9]).\*$
它不起作用。 它显示异常如下。
java.lang.IllegalArgumentException:cvc-pattern-valid:值“ narendra1A”相对于模式“ ^。*(\\?=。{6,20})(\\?=。* [az]”不是有效的。 * [az])(\\?=。* [AZ])(\\?=。* [0-9])。* $'用于类型'#AnonType_passwordcreateUser'。
在这方面可以帮助任何人。
谢谢,
纳伦德拉
这不能直接回答您的问题,但是与尝试使用正则表达式进行密码质量检查相比,它可能是更好的选择。
vt-password库是一个出色的Java库,可实现基于规则的密码质量检查。 除了计算字符/字符类之外,它还执行诸如检查字典,检查以前使用的密码,检查重复字符等操作。
(如果使用的是Spring,在Spring XML接线文件中配置密码规则对象非常简单。这使您可以在不更改代码的情况下调整规则。)
密码正则表达式模式
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
描述
( # Start of group
(?=.*\d) # must contains one digit from 0-9
(?=.*[a-z]) # must contains one lowercase characters
(?=.*[A-Z]) # must contains one uppercase characters
(?=.*[@#$%]) # must contains one special symbols in the list "@#$%"
. # match anything with previous condition checking
{6,20} # length at least 6 characters and maximum of 20
) # End of group
您的模式使用XML文档中禁止的字符。 为简单起见,将密码输入CDATA。
尝试这个
^.\*(\?:.{6,20})(\?:.\*[a-z].\*[a-z])(\?:.\*[A-Z])(\?:.\*[0-9]).\*$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.