2011-06-21 39 views
0

我刚开始搞乱regularexpressions,但基本上与这一个(我在网上找到btw)应该要求密码在8 - 10之间,但每当我尝试出来并放入正确的长度它仍然显示错误信息。有任何想法吗? 我还需要包括1个小,1个大写并在验证1号..mvc dataannotation regularexpression

public class password : IValidatableObject 
{ 
    [Required] 
    [RegularExpression("(?=^.{8,10}$)", ErrorMessage = "Password is invalid.")] 
    public string ConfirmPWD { get; set; } 
    [Required(ErrorMessage="Confirm Password field is required.")] 
    public string ConfirmPWD { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (ConfirmPWD != ConfirmPWD) 
      yield return new ValidationResult("Not identical."); 
    } 
} 

回答

0

尝试只".{8,10}"。此外,更具体的错误消息可能对您的用户有所帮助。

编辑:来把它为什么不直接使用StringLengthAttribute这个...

[StringLength(10, MinLength = 8, ErrorMessage = "Password must be between 8 and 10 characters")]

那么你可以使用正则表达式的更为具体的规定,如所需的复杂性。

+0

好,我有一个2 - 3人,我需要补充,难道我只是添加就可以了多个正则表达式?例如。 1为“密码需要至少有一个大写字母,1为”密码需要至少有一个数字字符“,etci觉得我需要做一些永恒的验证来检查它,我只是不知道如何去做它.. – gdubs

+0

@gdubs:请参阅我的编辑 –

+0

这可能适用于stringlength,但对于其余部分,如1大写,1小写,1数字需要每个具体的消息,如果我把它放在一个正则表达式它只会给我一个errormessage,这是正则表达式行上指定的一个。 – gdubs

1

你可能想是这样的:

[RegularExpression(@"^.{8,10}$", ErrorMessage = "Must be between 8 and 10 characters.")]