我正在尝试检查(在ASP.net MVC中)输入的密码是否包含“大写,小写和数字”。正则表达式很好,但不起作用(请输入有效密码)。如果我输入一个简单的表达式 @“^ d + $”,如果它有效。怎么了? THX!
private const string Pattern = @"^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])$";
[DataType(DataType.Password)]
[DisplayName("Password:")]
[Required(ErrorMessage = "Please enter your password.")]
[RegularExpression(Pattern, ErrorMessage = "Please enter a valid password")]
public string Password { get; set; }
答案 0 :(得分:2)
正则表达式模式与任何字符串都不匹配,因为它要求字符串具有大写和小写字母和数字,但没有消耗子模式。要匹配任何长度的字符串,请使用
@"^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$"
^^
或 - 仅匹配非空字符串
@"^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).+$"
^^
.*
匹配换行符以外的任何0 +字符,.+
匹配换行符以外的1 +个字符。
如果您希望字符串仅由大写和小写字母或/和数字组成,请使用[a-zA-Z0-9]
字符类:
@"^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]*$"
^^^^^^^^^^^^
根据需要调整量词。
答案 1 :(得分:0)
尝试使用此[RegularExpression(@“^(?=。 \ d)(?=。 [az])(?=。* [AZ])$”)]
数字应为(?=。 \ d)而不是(?=。 [0-9])
祝你好运