我需要为Entity Frame work 4.1模型类的密码属性创建一个正则表达式。
要求是:
密码必须为6-18个字符,并且至少包含一个字母和一个数字。允许使用特殊字符,例如@,%和&,#。
[Required]
[StringLength(18, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[RegularExpression(@"^((?=.*[a-z])(?=.*[A-Z])(?=.*\d)).+$", ErrorMessage = "Password doesn't meet the requirements")]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
如何修改它以允许特殊字符。这个正则表达式强制使用一个字母和一个字符,如果不是,我该如何更改正则表达式。有人建议我在web.config中的membership /提供者标签中添加这个逻辑。我怎么能在web.config中执行此操作。
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
connectionStringName="CreditRegistryDB" enablePasswordRetrieval="false" enablePasswordReset="true"
requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordStrengthRegularExpression =""
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
答案 0 :(得分:2)
以下正则表达式应符合您的要求:
^.*(?=.{6,18})(?=.*\d)(?=.*[A-Za-z])(?=.*[@%&#]{0,}).*$
这有以下要求:
特殊字符代表以下内容后的花括号:
您可以使用REGex TESTER测试此正则表达式,以确保它符合您的要求。