我正在尝试构建正则表达式以验证应用程序中的密码。
这是PCRE(php)。
到目前为止,我的正则表达式看起来像这样
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\$%\^&\*\(\)_\+\-\=\[\]\{\}\|'])(?=.*[^\\\/])(?=.{8,20})/
我的标准如下
minimum length: 8
maximum length: 20
require special character: true
require uppercase: true
require lowercase: true
require number: true
special character set: !@#$%^&*()_+-=[]{}|'
excluded character set: \/
一切正常,但排除的字符集有效。这个想法是密码不能包含该列表中指定的任何字符。
感谢您的帮助
使用
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_\-+=[\]{}|'])[^\/]{8,20}$/
请参见proof
替代:
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_\-+=[\]{}|'])[A-Za-z0-9!@#$%^&*()_+\-=[\]{}|']{8,20}$/
minimum length: 8 <= {8,20}
maximum length: 20 <= {8,20}
require special character: true <= (?=.*[!@#$%^&*()_\-+=[\]{}|'])
require uppercase: true <= (?=.*[A-Z])
require lowercase: true <= (?=.*[a-z])
require number: true <= (?=.*[0-9])
special character set: !@#$%^&*()_+-=[]{}|' <= [^\/]
excluded character set: \/ <= [^\/]