我似乎找不到合适的答案。
我需要一个正则表达式,以确保至少有one special character
,one number
,one upper
和one lower
,并且长度至少为8。
我在这里有一些,但是由于某种原因,当我添加更多字符时,它们无法识别它们。
ValidationExpression="^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%.*?&]{8,}"
我要添加每个特殊字符。
答案 0 :(得分:1)
请尝试避免使用冗长而复杂的正则表达式,因为将来很难理解和修改它们。而是定义一些简单明了的Regex,然后将其与c#代码结合起来
var hasLowercaseChar = new Regex("[a-z]");
var hasUppercaseChar = new Regex("[A-Z]");
var hasDigitChar = new Regex("[0-9]");
var hasSpecialChar = new Regex("\\$!\\^-@%&\\.\\*");
var input = "" // your input string here
var passwordIsValid = hasLowercaseChar.IsMatch(input)
&& hasUppercaseChar.IsMatch(input)
&& hasDigitChar.IsMatch(input)
&& hasSpecialChar.IsMatch(input)
&& input.Length >= 8;
在上面的示例中,每个正则表达式都很简单,即使您不确定它应该匹配什么,也可以从变量名中推断出这一点
答案 1 :(得分:0)
以下正则表达式可以解决问题:
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*\W)[\S]{8,}$
答案 2 :(得分:0)
尝试使用正则表达式:(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\];'#,.\/\\-])[A-Za-z\d$@!%*?&!"£$%^&*()_+{}:@~<>?|=[\];'#,.\/\\-]{8,}