我需要使用以下标准开发密码验证: - 至少有一个大写字母; - 至少一封小写字母; - 至少在数字上; - 可能包括一些特殊字符; - 必须有8到12之间的长度;
我已经开发了这个:
(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!#$&%*_+-=?|]).{8,12}
但是最近,要求发生了变化,我需要实现黑名单,例如: - 密码不得包含字母“o”或“O”; //奥斯卡的小写和大写字母O. - 密码不得为0; //数字零
如何保持初始要求并添加这些新验证? 感谢
JB
答案 0 :(得分:0)
问题是出现在字符类中间的连字符。连字符只有在字符类中的第一个或最后一个时才能保持未转义状态,因此正则表达式应该可以正常工作:
(?!.*[oO0])(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!#$&%*+=?|-]).{8,12}