我正在尝试至少2个字母,至少2个非字母,长度至少6个字符:
^.*(?=.{6,})(?=[a-zA-Z]*){2,}(?=[0-9@#$%^&+=]*){2,}.*$
Run Code Online (Sandbox Code Playgroud)
但是在很多层面都错过了标记,但我不确定为什么.有什么建议?
Jar*_*Par 10
虽然这种类型的测试可以使用正则表达式完成,但进行非正则表达式检查可能更容易且更易于维护.实现这一目标的正则表达式相当复杂,有点难以理解.但是运行此测试的代码非常简单.例如,将以下方法作为您的需求的实现(语言C#)
public bool IsValid(string password) {
// arg null check ommitted
return password.Length >= 6 &&
password.Where(Char.IsLetter).Count() > 2 &&
password.Where(x => !Char.IsLetter(x)).Count() > 2;
}
Run Code Online (Sandbox Code Playgroud)