我创建了一个用于密码验证的正则表达式
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&#^~|_.`+=-])[A-Za-z\d$@$!%*?&#^~|_.`+=-]{12,25}/
工作正常。
但是我需要提到特殊字符[$@$!%*?&#^~|_.`+=-]
的必填字段,有什么方法可以创建一个可以处理任何特殊字符的正则表达式。例如 Pras022222()1 这不会被视为有效密码,因为我没有在列表中提及()。
答案 0 :(得分:1)
您可以将此正则表达式与\W
:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[_\W]).{12,25}$
此处,字符类[_\W]
将强制存在任何非单词字符或下划线。
RegEx分手:
^
:断言开始(?=.*[a-z])
:断言我们前面有一个小写字母(?=.*[A-Z])
:断言我们前面有一个大写字母(?=.*\d)
:断言我们前面有一个数字(?=.*[_\W])
:断言我们前面有下划线或非单词字符.{12,25}
:匹配12到25个字符的字符串$
:断言结束